【发布时间】:2020-11-03 03:47:36
【问题描述】:
我有多个嵌套循环和一些我想同时迭代的数组。
现在,第一个数组以某种混乱的顺序包含数据:
ArrayOne (
[1298] => Array (
[manuf comment for dev 1] => Array (
[comment 1 for IMEI no. 277745.5] => 1298
)
)
[1312] => Array (
[0] => Array (
[comment 3 for IMEI no. 570] => 1312
)
)
[1318] => Array (
[0] => Array (
[comment 2 for IMEI no.576] => 1318
)
)
)
正如您在上面看到的,共有三个数组(我知道它们看起来很奇怪,但它们就是这样设置的,我无法更改它们)。
下一个数组是:
ArrayTwo ( [0] => 1321 [1] => 1322 [2] => 1323 )
重要提示:ArrayOne 和 ArrayTwo 的长度始终相同。所以如果ArrayOne 包含三个数组,ArraTwo 将包含三个值。
我现在迭代的方式是这样的:
foreach ($ArrayOne as $devices_id => $manuf_comments) {
foreach ($manuf_comments as $mc => $client_comments) {
foreach ($client_comments as $cl => $ff) {
echo "</br>MANUF COMMENTS: ";
print_r($mc);
echo "</br>DEV comments: ";
print_r($cl);
echo "</br>DEV id: ";
print_r($devices_id);
echo "</br>*";
}
}
}
上面的循环打印:
MANUF COMMENTS: manuf comment for dev 1
DEV comments: comment 1 for IMEI no. 277745.5
DEV id: 1298
*
MANUF COMMENTS: 0
DEV comments: comment 3 for IMEI no. 570
DEV id: 1312
*
MANUF COMMENTS: 0
DEV comments: comment 2 for IMEI no.576
DEV id: 1318
*
正如您所见,使用嵌套的 foreach 我可以正确打印 ArrayOne 值,但是如果我尝试在这些 foreach 循环中循环 ArrayTwo,它将执行 3 次,因为 @ 中有三个数组987654331@。 那么,问题是,如何在现有的 for 循环中正确循环 ArrayTwo?
【问题讨论】:
标签: php arrays multidimensional-array foreach