ほぼ一日中働いた後、この問題を解決する方法について自分の考えで頭が固まりました。一例です。
- 1、
- バツ、
- 2、
- 1x、
- 1、
- 2、
- バツ、
- 1、
- 2、
- 1、
- バツ、
- バツ、
- 1..
それは 1 つのクーポンです。組み合わせの可能性の後に並べ替えたいと思います。このクーポンには 1x2112x121xx1、1x2x12x121xx1 の 2 つの可能性があるとします。4 番目の一致は異なるものです。
だから...私の質問は、これをプログラムでどのように行うべきかです。
データベースからデータを取得すると、次のようになります。
array(
"gameNumber" => "1",
"bets" => array(
[0] => "1"
),
"gameNumber" => "2",
"bets" => array(
[0] = "x"
),
"gameNumber" => "3",
"bets" => array(
[0] = "2"
),
"gameNumber" => "4",
"bets" => array(
[0] = "1",
[1] = "x"
)
);
参考になるかわかりませんがこんな感じです。
これの最後の答えの助けを借りて、すべてを再帰配列に入れました: マルチレベル配列のすべての組み合わせをリストする再帰関数を構築する方法は? .
したがって、私の新しい再帰関数は次のようになります。
public function _combine_bets($array)
{
$cur = array_shift($array);
$result = array();
if(!count($array)) {
foreach($cur['bets'] as $option) {
$result[] = $cur['matchNumber']."-".$option;
}
return $result;
}
foreach($cur['bets'] as $bet) {
$result[$cur['matchNumber'].'-'.$bet] = $this->_combine_bets($array);
}
return $result;
}
このようにして、結果としてこの配列を取得しました: http://pastie.org/5692408
そうです.....私の質問に戻ります.これを賭けの値だけのように見せたい..次のように見えるとしましょう: 1x2112x121xx1, 1x2x12x121xx1. 大きな配列の代わりに。私はすべての可能性のためにこれを作成する必要があります.これは2つの異なる可能性に関するクーポンですが..それはもっとたくさんあります.
ユーザーは試合で 1,x,2,1x,12,x2,1x2 を選択できます。これは、ユーザーが 13 の異なるゲームで使用できるすべてのオプションであることを意味します。
さらに情報が必要な場合は、教えてください。これを更新します..