ホームページ >バックエンド開発 >PHPチュートリアル >インデックス付き配列で見つかったキーに基づいて連想配列をフィルタリングする方法

インデックス付き配列で見つかったキーに基づいて連想配列をフィルタリングする方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 02:44:14615ブラウズ

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

連想配列のキーをインデックス付き配列の値と照合する

キーとインデックス付き配列の値を比較して連想配列をフィルタリングするのは困難な場合がありますarray_filter() のコールバック関数は値へのアクセスのみを提供するためです。ただし、array_intersect_key と array_flip の組み合わせを使用する解決策があります。

次のシナリオを考えてみましょう:

$my_array = ["foo" => 1, "hello" => "world"];
$allowed = ["foo", "bar"];

私たちの目標は、$allowed で見つからない $my_array 内のキーを除外することです。 、目的の出力が得られます:

$my_array = ["foo" => 1];

Solution array_intersect_key と array_flip を使用:

  1. array_intersect_key を使用して、$my_array のキーと $allowed の値を比較します。これは、配列のキーと値を交換する array_flip 関数によって可能になります。
  2. 結果の配列には、$allowed にも存在する $my_array のキーのみが含まれます。
$filtered_array = array_intersect_key($my_array, array_flip($allowed));

出力:

var_dump($filtered_array);

array(1) {
  ["foo"]=>
  int(1)
}

以上がインデックス付き配列で見つかったキーに基づいて連想配列をフィルタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。