我有一个多维数组,它被迭代以创建一个具有不同研究兴趣的人的分类视图。主阵列看起来像这样:
Array
(
...
['Cell Biology'] => Array(4 elements)
['Molecular'] => Array(6 elements)
['Biology Education'] => Array(14 elements)
['Plant Biology'] => Array(19 elements) <--- Last element in array
)
我知道整个阵列完整且结构正确。这些数组中唯一的信息是用户ID,如下所示:
Array ('Plant Biology') 19 elements
(
[0] => 737
[1] => 742
[2] => 748
...
)
我的问题是,在我通过foreach循环运行主数组后,最后一个'子数组'搞砸了。搞砸了我的意思是你看到的东西看起来像:
String (13 characters) 'Plant Biology'
这对于循环内部的所有内容都没有做到被破坏的数组。
有关它可能是什么的提示?
// ---> Array is OK here
echo "<h2>Research divided</h2>";
// Loop areas and list them in 2 columns
foreach($research['areas'] as $area => $areaArray) {
// ---> Here it is already corrupted
$count = count($areaArray);
if($count > 0) {
echo "<h3>$area</h3><hr/>";
echo "<ul>";
// Loop users within areas, divided up in 2 columns
for($i=0 ; $i<$count ; $i++) {
$uid = $areaArray[$i];
echo "<li>$uid</li>";
}
echo "</ul>";
}
}
答案 0 :(得分:3)
$ area或$ areaArray是否在脚本中的其他位置使用了不同的函数?如果你将它们重命名为$ loop_area和$ loop_areaArray以防止意外覆盖变量,会发生什么?
答案 1 :(得分:1)
如果先使用相同的变量名称为referance循环遍历数组,则可能会出现错误。
因此,如果您的代码$ areaArray中的较早版本通过referance在foreach中使用,则可能会损坏您的数据。
确保先前未使用foreach中的两个变量或在循环之前取消设置它们。
退房:
有关此类问题的更多信息。