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

但至少 1 个或 VAR_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 嵌套 for 循环成为此问题的出色解决方案,这是一个示例:

$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 回答