我有一个我想循环的数组。使用:
echo count($places);
我的值为2.类似print_r
数组提供2
个项目。
然而,当我运行for循环时,它似乎经历了4次迭代。通过向循环添加echo $i
可以看出这一点,它产生的输出为0,1,2,3。
这是我的代码:
function enrichfromDB($places) {
$con = mysqli_connect("localhost","user","password","db1");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo count($places);
print_r($places);
for ($i=0 ; $i<count($places) ; $i++) {
echo $i;
$name = $places[$i]['name'];
$gettag = "SELECT Tag FROM PlaceTags WHERE Name = '$name'";
$data = mysqli_query($con,$gettag);
while($row = mysqli_fetch_assoc($data)) {
$tags[] = $row['Tag'];
}
$places[$i]['category_labels'][0][] = $tags[$i];
}
return $places;
}
答案 0 :(得分:2)
count($places)
的值为2.
但是,有一行
$places[$i]['category_labels'][0][] = $tags[$i];
您正在place数组中创建新元素。最初,您有两个元素,但您使用的某些索引在数组中不存在,因此它们已创建。仔细看看你的阵列来解决你的问题。