我想知道关于数组的for循环结构

时间:2015-05-20 15:42:07

标签: php for-loop

如何在取消设置数组后重新索引此数组:

echo "before deleting:<br>";
$countries[] = "Japan";
$countries[] = "Korea";
$countries[] = "china";

echo $a  = count($countries);
echo "<br>";

for($i= 0;$i < $a; $i++)
{
    echo "$countries[$i]<br>";
}

unset($countries[1]);
echo "<br>";      

取消设置功能后,计数显示2,但第2 国名中国并没有与下面的循环相呼应。

echo "<hr>After deleting:<br>";
echo $a = count($countries);
echo "<br>";

//below is my forloop
for($i=0;$i < $a; $i++)
{
    echo "$countries[$i]<br>";
}
</code>

2 个答案:

答案 0 :(得分:2)

使用array_values()重新索引:

$countries = array_values($countries);

但是,只需使用foreach()来迭代所有值:

foreach($countries as $country) {
    echo $country;
}

答案 1 :(得分:2)

而不是

for($i=0;$i < $a; $i++)
{
    echo "$countries[$i]<br>";
}

使用

foreach ($countries as $country) {
    echo $country . '<br>';
}

Foreach并不真正关心数组键,所以它会很好地循环。如果您确实想要使用标准的for循环,请在之前调用:$countries = array_values($countries);并且有效地重置数组的键。