天天看点

PHP删除数组指定值时unset()和array_slice()区别

  • 使用unset( )时
<?php
    $list = array(
        array(
            'id' => ,
            'name' => 'jack',
            ),
        array(
            'id' => ,
            'name' => 'rose',
            ),
        array(
            'id' => ,
            'name' => 'kobi',
            ),
        );
    unset($list[]);
    var_dump($list);
           

输出结果:

array (size=2) 0 => array (size=2) 'id' => int 1 'name' => string 'jack' (length=4) 2 => array (size=2) 'id' => int 3 'name' => string 'kobi' (length=4)

  • 使用array_slice()时
<?php
    $list = array(
        array(
            'id' => ,
            'name' => 'jack',
            ),
        array(
            'id' => ,
            'name' => 'rose',
            ),
        array(
            'id' => ,
            'name' => 'kobi',
            ),
        );
    $list = array_slice($list,);
    var_dump($list);
           

输出结果:

array (size=2) 0 => array (size=2) 'id' => int 2 'name' => string 'rose' (length=4) 1 => array (size=2) 'id' => int 3 'name' => string 'kobi' (length=4)

说明:后者删除数组元素会重组数组键值

注意:使用array_slice()时 输出的时返回值 该函数并不会像unset()

一样影响原数组

php