假设我有两个变量,即转换为数组的字符串
$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 =桌牌)
答案 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");