根據陣列的值刪除元素

junwind發表於2021-10-14

有更好的辦法,歡迎大家評論哈

//示例陣列
$arr = [123,345,456,789];

//1. 迴圈,取得key,unset,這種最好理解
foreach($arr as $k => $v) {
    if($v == '123') {
        unset($arr[$k]);
    }
}

//2. array_flip,交換鍵值位置,刪除後,再次反轉一下
$arr = array_flip($arr);
unset($arr['123']);
$arr = array_flip($arr);
print_r($arr);

//3. array_search,搜尋得到key
if($k = array_search(789, $arr)) {
    unset($arr[$k]);
}

//4. array_diff,差集, 可以刪多個,推薦
array_diff($arr, [456]);

最後提醒:
需要去重,或者重置鍵的,得還可以用 array_values , array_merge , array_unique 處理,具體可以自己測試
本作品採用《CC 協議》,轉載必須註明作者和本文連結
六月的風

相關文章