PHP计数显示数组中的2个元素,循环循环4次

时间:2013-12-24 12:07:18

标签: php arrays

我有一个我想循环的数组。使用:

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;
}

1 个答案:

答案 0 :(得分:2)

count($places)

的值为2.

但是,有一行

$places[$i]['category_labels'][0][] = $tags[$i];

您正在place数组中创建新元素。最初,您有两个元素,但您使用的某些索引在数组中不存在,因此它们已创建。仔细看看你的阵列来解决你的问题。