如何使用數組函數在平面數組中尋找具有列值的數組行?

DDD
發布: 2024-10-23 17:59:02
原創
992 人瀏覽過

How to Find Array Rows with Column Values in a Flat Array Using Array Functions?

在平面數組中尋找具有列值的數組行

在此場景中,您將獲得兩個數組:一個原始數組$arr1 ,具有多個欄位和一個輔助數組$arr2,其中包含唯一ID 值的清單。目標是透過僅選擇包含 $arr2 中找到的 ID 值的行來優化 $arr1。

此問題的高效解決方案在於利用 array_uintersect() 函數。此函數使用自訂回調來比較兩個輸入數組中的元素。在此自訂回調中,我們存取“id”列中的值。如果該列不存在,我們將回退到參數的值。

array_uintersect() 在評估期間利用排序技術來最佳化執行時間。透過比較列值和 ID 值,它可以識別 $arr1 中具有在 $arr2 中找到的 ID 的行。產生的陣列將僅包含滿足此條件的選定行。

以下是實現此解決方案的程式碼,供您參考:

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

以上是如何使用數組函數在平面數組中尋找具有列值的數組行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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