0

我有n数组(例如 2 个数组):

$tab['1'] = array('1', '2', '3');
$tab['2'] = array('A', 'B', 'C');

我怎样才能得到这个结果?

1 A
1 B
1 C
2 A
2 B
2 C
3 A
3 B
3 C

也就是说,来自第一个数组的每个元素与来自其他数组的每个元素。

4

3 回答 3

5

您将进行二维迭代。

像这样运行第一个数组

foreach ($tab[1] as $number) {...}

对于第一个数组中的每个数字,将执行括号中的代码。如果要计算每个数字的每个字母,只需在内部重复相同的迭代:

foreach ($tab[1] as $number) {
    foreach ($tab[2] as $letter) {
        print($number.' '.$letter."\n");
    }
}
于 2012-04-09T20:28:17.757 回答
3
foreach ($tab[1] as $num) {
   foreach ($tab[2] as $letter) {
      echo "$num $letter\n";
   }
}
于 2012-04-09T20:28:28.167 回答
0

另一种方法(为了好玩)

array_map(function($a, $b) {
             foreach( $b as $e ) {
                 echo "$a $e\n";
             }
          }, 
          $tab['1'], 
          array_fill(0, count($tab['1']), $tab['2']));
于 2012-04-09T21:01:37.960 回答