PHP数组未设置

swa*_*er7 2 php arrays unset array-unset

这里的代码(在php 5.3.5和5.2.13中执行):

$res = array(1, 2, 3);

unset($res[0]);

for($i = 0; $i < sizeof($res); $i++)
{
  echo $res[$i] . '<br />';
}
Run Code Online (Sandbox Code Playgroud)

结果我看到了

<br />2<br />
Run Code Online (Sandbox Code Playgroud)

为什么只有一个元素,并且首先是空的?不明白.做的时候:

print_r($res);
Run Code Online (Sandbox Code Playgroud)

看到:

Array ( [1] => 2 [2] => 3 )
Run Code Online (Sandbox Code Playgroud)

Thanx寻求帮助!

tvk*_*ers 8

这是因为你$i = 0;从而不是1 开始,这是新的第一个索引.最后一个元素缺失,因为它在第二个(之前是第三个)元素之前停止,因为大小已经减少到2.这应该得到你想要的结果:

foreach($res as $value) {
    echo $value . '<br />';
}
Run Code Online (Sandbox Code Playgroud)