2

配列に変換された文字列の 2 つの変数があるとします。

$VAR_1 = '1-1:2-1';
$VAR_1 = Explode(':', $VAR_1);

$VAR_2 = '3-1:4-1:2-2:2-3:2-4';
$VAR_2 = Explode(':', $VAR_2);

今、VAR_1 と VAR_2 混合セットの「すべて」の組み合わせを新しい配列 $COMB に入れたい

ただし、VAR_1 の少なくとも 1 つ、または両方の変数が新しい配列に含まれている必要があり、結合された文字列は 5 つの変数で構成されている必要があります。

重複するすべての組み合わせが必要ですが、順序が異なります。

これを達成する方法は?

シナリオ: ポーカー ゲーム (VAR_1 = プレイヤー カード (色 - 数字) VAR_2 = テーブル カード)

4

3 に答える 3

0
 {
 $array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
 $array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
 $result = $array1 + $array2;
 var_dump($result);
 }
于 2013-02-25T08:57:35.490 に答える
0

最初に、シンプルを使用して、7 つの変数すべての配列を作成する必要があります。

$arr3 = $arr1 + $arr2;

また

$arr3 = array_merge($arr1, $arr2);

次に、5 つの要素のグループを選択する必要があります。つまり、2 つの要素が常にスキップされます。これらの 2 つの要素にはインデックス $i と $j があり、2 つのネストされたサイクルがこの問題の優れた解決策になります。例を次に示します。

$array = array("1-2", "1-5", "1-8", "3-4", "2-1", "2-2", "1-6");
$result = array(); //not sure if this line is nesseserly, but better be sure
for ($i = 0; $i < 7; $i++) {
    for ($j = $i + 1; $j <= 7; $j++) {
        $buffer = array(); //this is nesseserly
        for ($k = 0; $k < 7; $k++) {
            if ($k == $i || $k == $j) {
                continue;
            }
            $buffer[] = $array[$k]; //add to end
        }
        $result[] = $buffer; //add to end
    }
}
var_dump($result);

これは、テスト済みの私にとってはうまくいくワインです。

于 2013-02-28T16:07:01.070 に答える
-1

array_merge()を使用する

http://php.net/manual/en/function.array-merge.php

$a = array("a", "b", "c");
$b = array("g", "a", "f");
$c = array_merge($a, $b);
var_dump($c); //array("a", "b", "c", "g", "a", "f");
于 2013-02-25T08:32:52.290 に答える