假设我有两个变量,字符串转换为数组
$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 =桌牌)
发布于 2013-02-25 16:57:35
{
$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-03-01 00:07:01
首先,您需要使用simple创建一个包含所有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-25 16:32:52
使用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");https://stackoverflow.com/questions/15062848
复制相似问题