是一样的,你用unset()显示一下该数组,它的下标没有变!
<?
$a = array("china","usa","english");
print_r($a);
unset($a[1]);
print_r($a);
?>
这是结果:Array
(
    [0] => china
    [1] => usa
    [2] => english
)
Array
(
    [0] => china
    [2] => english
)

解决方案 »

  1.   

    楼主是什么意思?不太明白。unset()本来就是删除变量的函数啊。
      

  2.   

    删除那个变量和删除它的key是一样效果吧?或者说删除一个变量unset($var)的时候就是把它的key删掉?
      

  3.   

    unset($var)把变量$var删除了
    unset($array[2])把数组中下标为2的元素删除了
    若$array是数组
    unset($array)则把数组删除了
    所以删除数组元素必须给出键unset($array[key($array)])将删除数组中当前位置的元素例:
    <?php
    $result = array(1,a=>4,5,b=>7);
    print_r($result);
    // 做若干次指针移动
    next($result);
    prev($result);
    next($result);
    next($result);
    prev($result);
    // 现在数组的指针在哪呢?
    echo key($result)."=>".pos($result);
    //unset($result[key($result)]);
    ?>