天天看點

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