【发布时间】:2017-09-27 20:29:14
【问题描述】:
我通过 POST 从表单中获取大量数据。例如,以下是一些数据:
事件日期:
Array (
[0] => 2017-04-02
[1] => 2017-04-02
[2] => 2017-04-03 )
设备名称:
Array
(
[0] => Array
(
[0] => Mic
[1] => Sound System
[2] => Wireless Mic
[3] => Two Point Stage Wash
)
[1] => Array
(
[0] => Sound System
)
[2] => Array
(
[0] => Projection Package
[1] => Gobo
[2] => Audio Engineer
)
)
为了保存这些数据,我正在执行两个 foreach 循环:
foreach ($_POST['event_date'] as $key => $date) {
echo "event number [".$key."]<br>";
//insert into table value $_POST['event_date'][$key]
foreach ($_POST['equipment_name'] as $ekey => $value) {
echo "equipment number [".$key."][".$ekey."]<br>";
//insert into table value $_POST['equipment_name'][$key][$ekey];
}
}
不幸的是,我的结果如下:
event number [0]
equipment number [0][0]
equipment number [0][1]
equipment number [0][2]
event number [1]
equipment number [1][0]
equipment number [1][1]
equipment number [1][2]
event number [2]
equipment number [2][0]
equipment number [2][1]
equipment number [2][2]
如您所见,嵌套键 ($ekey) 等于第一个键,不显示超过该编号的项目(例如:设备编号 [0][3]),如果设备数量低于该编号(例如:设备编号 [1][1] 和 [1][2])。
为什么嵌套循环有这种行为?我该如何解决这个问题?
【问题讨论】:
标签: php multidimensional-array foreach nested-loops