如何使用 array_uintersect() 透過匹配值來過濾數組行?

Linda Hamilton
發布: 2024-10-23 16:06:02
原創
143 人瀏覽過

How to Filter Array Rows by Matching Values Using array_uintersect()?

在平面數組中保留與值匹配的數組行

背景:

背景:

您有一個陣列$arr1 具有多個列,另一個陣列$arr2 包含值清單。目標是過濾 $arr1 並僅保留 id 列與 $arr2 中的任何值相符的行。

解決方案:

使用array_uintersect() :
var_export(
    array_uintersect(
        $arr1,
        $arr2,
        fn($a, $b) =>
            ($a['id'] ?? $a)
            <=>
            ($b['id'] ?? $b)
    )
);
登入後複製

最有效的解決方案是利用array_intermect(3) 函數此函數使用使用者定義的回調來比較兩個陣列中的元素。在這種情況下,回呼會檢查 id 值是否符合。

  • 說明:
  • array_uintersect() 函數接受兩個陣列和一個回呼作為參數。
  • 為兩個數組中的每個元素調用回調函數,如果元素相等則返回0,如果第一個元素大於則返回1,如果第二個元素大於則返回-1 .
如果元素沒有id 列,則使用其原始值進行比較。

結果是一個數組,只包含$arr1 中id 列與某個值匹配的行$arr2.

  • array_uintersect()的好處:
  • 它是原生PHP函數,保證效率和相容性。
它在求值的同時進行排序,從而優化了效能。 與迭代呼叫 in_array() 相比,它提供了簡潔易讀的解決方案。

以上是如何使用 array_uintersect() 透過匹配值來過濾數組行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!