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

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

DDD
DDD原創
2024-12-13 11:52:10762瀏覽

How Can I Filter Associative Array Keys Based on Indexed Array Values in PHP?

根據索引數組值過濾關聯數組鍵

許多程式設計師都會遇到基於特定條件選擇性地從關聯數組中過濾掉鍵的挑戰值儲存在索引數組中。在 PHP 中,array_filter() 回呼函數僅提供對數組值的訪問,而忽略了鍵匹配功能。

考慮以下場景,其中$my_array 包含鍵值對:

$allowed 是一個帶有允許的鍵的簡單索引數組:

目標是修改$my_array 使得它只包含$allowed 中也存在的鍵。所需的輸出是:

要實現此目的,我們可以利用array_intersect_key() 和array_flip() 函數:

解釋:

  • 解釋:
  • **array_flip($allowed)**:反轉$allowed 的鍵和值,將其轉換為關聯數組,其中原始鍵變為值,反之亦然。這允許我們將 $my_array 中的鍵與翻轉數組中的值進行比較。

array_intersect_key($my_array, $reversed)

:將 $my_array 的鍵與翻轉的 $allowed 陣列相交。這只保留 $my_array 中作為翻轉數組中的值出現的鍵,有效地過濾掉不需要的鍵。 透過組合這些函數,我們可以根據值選擇性地從關聯數組中刪除鍵在索引數組中,無需手動迭代鍵並比較它們。

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

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