PHP将所有组合转换为数组

时间:2013-02-25 08:27:59

标签: php

假设我有两个变量,即转换为数组的字符串

$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中至少有一个或两个变量必须在新数组中,并且组合字符串必须由5个变量组成。

我需要所有组合,也需要重复,但它们的顺序不同。

如何实现这一目标?

场景:扑克游戏(VAR_1 =玩家卡(颜色 - 数字)VAR_2 =桌牌)

3 个答案:

答案 0 :(得分: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);
 }

答案 1 :(得分: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);

这对我来说是葡萄酒,经过测试。

答案 2 :(得分:-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");