首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将所有组合放入数组中

将所有组合放入数组中
EN

Stack Overflow用户
提问于 2013-02-25 16:27:59
回答 3查看 143关注 0票数 2

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

代码语言:javascript
复制
$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 =桌牌)

EN

回答 3

Stack Overflow用户

发布于 2013-02-25 16:57:35

代码语言:javascript
复制
 {
 $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);
 }
票数 0
EN

Stack Overflow用户

发布于 2013-03-01 00:07:01

首先,您需要使用simple创建一个包含所有7个变量的数组

代码语言:javascript
复制
$arr3 = $arr1 + $arr2;

代码语言:javascript
复制
$arr3 = array_merge($arr1, $arr2);

然后,你需要选择5个元素的组,这意味着2个元素将总是被跳过,这2个元素将有索引$i和$j,使2个嵌套的循环成为这个问题的更好的解决方案,下面是一个例子:

代码语言:javascript
复制
$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);

这款酒对我很有效,测试过了。

票数 0
EN

Stack Overflow用户

发布于 2013-02-25 16:32:52

使用array_merge()

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

代码语言:javascript
复制
$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");
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15062848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档