在平面數組中尋找具有列值的數組行
在此場景中,您將獲得兩個數組:一個原始數組$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中文網其他相關文章!