首頁 >後端開發 >php教程 >如何根據索引數組中的鍵在 PHP 中過濾關聯數組?

如何根據索引數組中的鍵在 PHP 中過濾關聯數組?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-13 08:39:10388瀏覽

How to Filter an Associative Array in PHP Based on Keys from an Indexed Array?

根據索引數組中的鍵過濾關聯數組

在PHP 中,array_filter() 提供了一個基於索引數組中的鍵過濾關聯數組的便捷方法關於他們的價值觀。然而,函數只考慮值,讓程式設計師尋找一種根據一組允許的值來過濾鍵的方法。這個問題解決了這個挑戰。

給定一個關聯數組 ($my_array) 和一個允許鍵的索引數組 ($allowed),任務是從 $my_array 中刪除 $allowed 中不存在的所有鍵。所需的輸出是一個 $my_array,僅包含在 $allowed 中找到鍵的鍵值對。

解:

答案建議使用兩個陣列運算子:

  • array_intersect_key(): 此>函數執行使用兩個陣列的鍵進行比較。它傳回一個僅包含兩個數組中都存在的鍵的新數組。
  • array_flip(): 此函數翻轉關聯數組的鍵和值,有效地將其鍵轉換為值並反之亦然。
結合這兩個函數,您可以將關聯數組過濾為如下所示:

$filtered_array = array_intersect_key($my_array, array_flip($allowed));
這裡, array_flip($allowed) 建立一個新數組,其中$allowed中的值成為鍵,而鍵成為值。 array_intersect_key($my_array, ...) 然後將 $my_array 與翻轉後的陣列進行比較,傳回一個僅包含允許的鍵作為鍵及其關聯值的陣列。

範例:

使用提供的範例:

$my_array = array("foo" => 1, "hello" => "world");
$allowed = array("foo", "bar");
產生的 $filtered_array 將會是:

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn