首頁 > 後端開發 > php教程 > 在 PHP 中過濾數組時如何保留鍵?

在 PHP 中過濾數組時如何保留鍵?

Mary-Kate Olsen
發布: 2024-12-17 07:54:25
原創
743 人瀏覽過

How Can I Preserve Keys When Filtering an Array in PHP?

使用array_intersect_key 和array_flip 保留數組過濾中的鍵

在PHP 中, array_filter() 函數可用於從數組中刪除元素基於數組自訂回調函數。但是,回呼僅接收數組的值,而不是鍵。

考慮這樣的場景:您有一個關聯數組 ($my_array) 和索引數組中允許的鍵列表 ($allowed)。目標是過濾 $my_array 並刪除 $allowed 中不存在的所有鍵。

最有效的方法是利用 array_intersect_key 和 array_flip 函式。 array_intersect_key 函數根據另一個陣列中存在的鍵過濾數組鍵值對。 array_flip 函數翻轉數組的鍵和值,有效地建立值和鍵之間的映射。

透過組合這些函數,可以實現所需的過濾:

$filtered_array = array_intersect_key($my_array, array_flip($allowed));
登入後複製

這段程式碼將建立一個新數組($filtered_array),其中僅包含$my_array 中的鍵值對,其中鍵存在於$allowed 中。結果將與所需的輸出相同:

array(
  ["foo"] => 1
)
登入後複製

以上是在 PHP 中過濾數組時如何保留鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板