<menu id="ycqsw"></menu><nav id="ycqsw"><code id="ycqsw"></code></nav>
<dd id="ycqsw"><menu id="ycqsw"></menu></dd>
  • <nav id="ycqsw"></nav>
    <menu id="ycqsw"><strong id="ycqsw"></strong></menu>
    <xmp id="ycqsw"><nav id="ycqsw"></nav>
  • php刪除數組最后一個元素使用什么方法(教你刪除數組最后一位)


    引言

    PHP 數組操作,之前我們講了如何根據值,進行多維數組的排序。今天說一說,如何根據值,進行數組元素的刪除。

    3分鐘短文 | PHP 根據值移除數組元素,哪個方法最簡單?

    學習時間

    假設有一個一維數組,單純的數字數組。為了簡化問題,我們假設數組元素沒有重復項。

    $messages = [312, 401, 1599, 3, ...];

    那么該如何移除 “401”這個元素呢?

    最簡單的辦法,應該使用 array_search 和 unset 兩個函數完成,代碼這樣寫:

    if (($key = array_search($del_val, $messages)) !== false) {
        unset($messages[$key]);
    }

    函數 array_search 是在數組中搜索給定的值,如果成功則返回相應的鍵名。 如果沒有找到匹配的值,則返回false。

    我們使用變量 $key 獲取 array_search 的返回值,如果不是 false,那么就是存在。然后調用 unset 函數進行刪除即可。

    需要注意的是,比較運算符一定是使用“!==”這個不全等于號,否則如果返回了數組索引 0,也會被判斷為空,即 0 == false。

    其他方法

    換一種方法處理。我們嘗試使用 array_diff 函數,計算差集,可以刪除任意多個元素的值:

    array_diff( [312, 401, 15, 401, 3], [401] )

    但是這個函數會有副作用,就是返回值是新的數組,保持索引鍵值不變。同時,原數組內容保持不變。

    深入使用

    上面我們給定的前提非常簡單,就是加入數組內都是不同的數據。實際應用中,很難保證這一點。除非是模型返回的主鍵,或者做了 unique 約束的字段,否則不能保證數據集內沒有相同的值。

    手冊上也說了,這樣根據值移除數據內所有對應元素的,應該使用 array_keys 函數。

    foreach (array_keys($messages, 401, true) as $key) {
        unset($messages[$key]);
    }

    函數 array_keys 第三個參數為可選項,用于標記是否嚴格篩選模式。

    寫在最后

    本文通過不同的方法,演示了如何從數組中,根據值移除相應元素的方法。

    Happy coding :_)

    版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

    發表評論

    登錄后才能評論
    国产精品区一区二区免费