我有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
也就是说,来自第一个数组的每个元素与来自其他数组的每个元素。
您将进行二维迭代。
像这样运行第一个数组
foreach ($tab[1] as $number) {...}
对于第一个数组中的每个数字,将执行括号中的代码。如果要计算每个数字的每个字母,只需在内部重复相同的迭代:
foreach ($tab[1] as $number) {
foreach ($tab[2] as $letter) {
print($number.' '.$letter."\n");
}
}
foreach ($tab[1] as $num) {
foreach ($tab[2] as $letter) {
echo "$num $letter\n";
}
}
另一种方法(为了好玩)
array_map(function($a, $b) {
foreach( $b as $e ) {
echo "$a $e\n";
}
},
$tab['1'],
array_fill(0, count($tab['1']), $tab['2']));