按值(非鍵)從PHP 數組中刪除元素
在PHP 中處理數組時,通常需要根據值刪除他們元素的價值觀而不是他們的鑰匙。考慮這樣一個陣列:
$messages = [312, 401, 1599, 3, ...];
由於這個陣列中的值是唯一的,我們如何在不知道其鍵的情況下選擇性地刪除具有特定值的元素?
解決方案:使用 array_search() 和 unset()
PHP 為此提供了兩個有用的函數: array_search() 和取消設定()。這些函數的組合允許我們搜尋元素的鍵,然後將其從陣列中刪除。它的工作原理如下:
if (($key = array_search($del_val, $messages)) !== false) { unset($messages[$key]); }
此程式碼使用 array_search() 尋找值為 $del_val 的元素的鍵。如果找不到該鍵,則 array_search() 傳回 FALSE。但是,我們使用嚴格的比較運算子 !== 來確保僅當 array_search() 明確傳回 FALSE 時表達式才會計算為 true,從而避免 false-y 值(例如,鍵 0)。
如果鍵是發現,unset()函數用於從$messages陣列中刪除該元素。需要注意的是,unset() 是透過 key 來運作的,這就是為什麼我們需要先從 array_search() 取得 key。
以上是如何按值而不是鍵從 PHP 陣列中刪除元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!