【问题标题】:How to get all possible combinations of multidimensional array [duplicate]如何获得多维数组的所有可能组合
【发布时间】:2013-02-12 15:13:47
【问题描述】:

好的,这里我有一个多维数组。它由 3 个数组组成,每个数组有 3 个数字。

$numbers = array(
    array("1", "2", "3"),
    array("4", "5", "6"),
    array("7", "8", "9"),
);

我想从这些数组中生成并列出所有可能的数字组合。例如,“147”(1 来自第一个数组,4 来自第二个数组,7 来自第三个数组)、“247、347、157、257、357、167、267、367 等。 。”

重要的是第一个数字必须来自第一个数组,第二个数字来自第二个数组,第三个来自第三个数组。

我尝试使用嵌套的 foreach 循环遍历这些数组,但我无法完全弄清楚,这让我头晕目眩。希望这是有道理的,任何帮助将不胜感激。

【问题讨论】:

标签: php arrays multidimensional-array foreach


【解决方案1】:
$numbers = array(
    array("1", "2", "3"),
    array("4", "5", "6"),
    array("7", "8", "9"),
);

$f_nb = $numbers['0'];
$s_nb = $numbers['1'];
$t_nb = $numbers['2'];

$final_array = array();

for($a = 0; $a<sizeof($f_nb); $a++) 
{
    for($b = 0; $b<sizeof($s_nb); $b++) 
    {
        for($c = 0; $c<sizeof($t_nb); $c++) 
        {
            $final_array[] = $f_nb["$a"] . $s_nb["$b"] . $t_nb["$c"];
        }
    }
}

print_r($final_array);

【讨论】:

    【解决方案2】:
    <?php
    $numbers = array(
        array("1", "2", "3"),
        array("4", "5", "6"),
        array("7", "8", "9"),
    );
    
    for ($i=0;$i<3;$i++) {
      for ($j=0;$j<3;$j++) {
        for ($k=0;$k<3;$k++) {
          echo $numbers[0][$i]+" "+$numbers[1][$j]+" "+$numbers[2][$k]+"\n";
        }
      }
    }
    ?>
    

    我之前没有用 php 编程,所以代码可能会让你流血。尽管如此,代码仍然有效并展示了这个想法。

    【讨论】:

      猜你喜欢
      • 2012-06-05
      • 1970-01-01
      • 2013-03-29
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多