您好,登錄后才能下訂單哦!
小編給大家分享一下php數組中如何移除元素,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
php數組中移除元素的方法:1、通過“unset($array[1]);”方式移除數組元素;2、通過“array_splice($array, 1, 1);”方式移除數組元素。
引言
PHP的數組,說白了就是一個映射的鍵值對集合。那么如何從數組元素中刪除元素呢?你肯定首先想到遍歷數組,然后找到目標項,然后刪除。
我看到有同學將要刪除的元素 = null,這并不起作用,因為 null 也是作為值存在的。并不能移除元素。
本文就專門說說移除數組元素的方法。
學習時間
大致上說,移除數組元素,有兩個常用方法,一個是 unset 函數,一個是 array_splice 函數。
array_splice 什么時間使用?就是你拿到的是值,卻不知道其索引,就要用這個了。
unset 函數
請注意,使用 unset 函數不會重新構建索引,數組不會洗牌。如果你想要在刪除元素后重新創建索引,那就執行 array_values,返回的數組就是重新編排過索引的了。并且所有索引被設置成默認從0開始的數字。
舉例說明:
$array = [0 => "a", 1 => "b", 2 => "c"]; unset($array[1]);
執行該操作后,數組 $array 的值如下:
[ [0] => a [2] => c ]
可以注意到數組索引沒有變化。
array_splice 函數
這個函數在移除元素后,關聯數組的對應關系不會改變,此函數的參數形式:
array array_splice( array &$input, int $offset[, int $length = 0[, mixed $replacement]] )
用來把數組中的一部分去掉并用其它值取代 。如果最后的參數 replaement不傳,就是默認為把offset 開始的 如果是數字索引,返回的數組會重新編排索引值:
$array = [0 => "a", 1 => "b", 2 => "c"]; array_splice($array, 1, 1);
返回的值:
[ [0] => a [1] => c ]
可以看到索引被重新編排了。
再深一步
上面說的兩個示例,都是單個元素的刪除。下面說說移除多個數組元素。
unset / arraysplice 用起來太繁瑣了,要一個一個地操作。如果我們知道了數組元素的鍵,或者值,則可以使用 array_diff / array_diff_key 來進行批量操作。
array_diff 函數
比如已知要刪除的元素的值,可以像下面這樣移除:
$array = [0 => "a", 1 => "b", 2 => "c"];
$array = array_diff($array, ["a", "c"]);
結果輸出:
[ [1] => b ]
數組的索引并不會被重建。
array_diff_keys 函數
如果已知要刪除元素的索引,可以通過下面這樣刪除:
$array = [0 => "a", 1 => "b", 2 => "c"]; $array = array_diff_key($array, [0 => "xy", "2" => "xy"]);
執行后輸出:
[ [1] => b ]
索引沒有重建。
以上是“php數組中如何移除元素”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。