PHP foreach在第一个键中的值处卡住
我有一个由不同部门组成的多维数组,我想使用foreach循环遍历它,但出于某种原因,foreach循环在每次迭代中都会获取第一个键下的值 该数组如下所示:PHP foreach在第一个键中的值处卡住,php,loops,foreach,Php,Loops,Foreach,我有一个由不同部门组成的多维数组,我想使用foreach循环遍历它,但出于某种原因,foreach循环在每次迭代中都会获取第一个键下的值 该数组如下所示: $departmentArray = Array ( [0] => Array ( [dpt_id] => 5 [dpt_name] => Administration [dpt_employees] => Array
$departmentArray =
Array
(
[0] => Array
(
[dpt_id] => 5
[dpt_name] => Administration
[dpt_employees] => Array
(
[0] => Array
(
[started] => 2000-06-01
[stopped] => 9999-99-99
[empl_id] => 21
)
[1] => Array
(
[started] => 2000-06-01
[stopped] => 2010-01-01
[empl_id] => 23
)
)
)
[1] => Array
(
[dpt_id] => 6
[dpt_name] => Warehouse
[dpt_employees] => Array
(
[0] => Array
(
[started] => 2000-10-01
[stopped] => 2012-01-01
[empl_id] => 30
)
[1] => Array
(
[started] => 2007-10-17
[stopped] => 9999-99-99
[empl_id] => 197
)
)
)
)
foreach($departmentArray as $key => $value) {
print_r($key);
print_r($value['dpt_name']);
}
foreach循环如下所示:
$departmentArray =
Array
(
[0] => Array
(
[dpt_id] => 5
[dpt_name] => Administration
[dpt_employees] => Array
(
[0] => Array
(
[started] => 2000-06-01
[stopped] => 9999-99-99
[empl_id] => 21
)
[1] => Array
(
[started] => 2000-06-01
[stopped] => 2010-01-01
[empl_id] => 23
)
)
)
[1] => Array
(
[dpt_id] => 6
[dpt_name] => Warehouse
[dpt_employees] => Array
(
[0] => Array
(
[started] => 2000-10-01
[stopped] => 2012-01-01
[empl_id] => 30
)
[1] => Array
(
[started] => 2007-10-17
[stopped] => 9999-99-99
[empl_id] => 197
)
)
)
)
foreach($departmentArray as $key => $value) {
print_r($key);
print_r($value['dpt_name']);
}
这张照片是:
0 Administration 1 Administration.
是否有人知道,为什么循环在第二次迭代期间不在数组中向前移动并获取键/索引1下的值(仓库)?完全进入黑暗: 您以前在
foreach
循环中使用了$value
作为参考,如下所示:
foreach ($foo as &$value) { ... }
foreach ($departmentArray as $key => $value) { ... }
这是参考文献的一个众所周知的副作用<代码>取消设置($value)在第一个循环之后。否,此代码不会打印该值。如果您自己的代码打印它,那么您正在做一些不同的事情。可能通过引用进行迭代并更改值?谢谢您的回答。你是对的,我在代码前面通过引用进行迭代,在这里我使用相同的名称,我现在将研究它。感谢你在黑暗中的尝试,我认为你是对的,因为我在代码前面通过引用进行迭代。我应该取消设置()花括号内第一个循环中的$value吗?