php數(shù)組中刪除元素之重新索引

字號:


    如果要在某個(gè)數(shù)組中刪除一個(gè)元素,可以直接用的unset,但今天看到的東西卻讓我大吃一驚
    <?php
    $arr = array('a','b','c','d');
    unset($arr[1]);
    print_r($arr);
    ?>
    print_r($arr)
    之后,結(jié)果卻不是那樣的,最終結(jié)果是 Array ( [0] => a [2] => c [3] => d )
    那么怎么才能做到缺少的元素會(huì)被填補(bǔ)并且數(shù)組會(huì)被重新索引呢?答案是
    array_splice():
    <?php
    $arr = array('a','b','c','d');
    array_splice($arr,1,1);
    print_r($arr);
    ?>
    print_r($arr)之后,結(jié)果是Array ( [0] => a [1] => c [2] => d )
    刪除數(shù)組指定元素
    array_search()比較實(shí)用
    array_search() 函數(shù)與 in_array() 一樣,在數(shù)組中查找一個(gè)鍵值。如果找到了該值,匹配元素的鍵名會(huì)被返回。如果沒找到,則返回 false
    $array = array('1', '2', '3', '4', '5');
    $del_value = 3;
    unset($array[array_search($del_value , $array)]);//利用unset刪除這個(gè)元素
    print_r($array);
    輸出
    array('1', '2', '4', '5');
    但這種如果要重新索引數(shù)組就需要利用foreach遍歷刪除的數(shù)組之后重新建立一個(gè)數(shù)組這樣也是可以的。