インデックス付き配列値に基づいて連想配列キーをフィルタリングする
多くのプログラマは、特定の値に基づいて連想配列からキーを選択的にフィルタリングするという課題に直面しています。インデックス付き配列に格納された値。 PHP では、array_filter() コールバック関数は配列値へのアクセスのみを提供し、キー マッチング機能は提供しません。
$my_array にキーと値のペアが含まれる次のシナリオを考えてみましょう:
$my_array = ["foo" => 1, "hello" => "world"];
$allowed は、許可されたキーを持つ単純なインデックス付き配列です:
$allowed = ["foo", "bar"];
目的は変更することです$my_array には、$allowed にも存在するキーのみが含まれます。望ましい出力は次のとおりです:
$my_array = ["foo" => 1];
これを実現するには、array_intersect_key() 関数と array_flip() 関数を利用できます:
var_dump(array_intersect_key($my_array, array_flip($allowed)));
説明:
これらの関数を組み合わせることで、値に基づいて連想配列からキーを選択的に削除できます。キーを手動で繰り返して比較することなく、インデックス付き配列に入力できます。
以上がPHP でインデックス付き配列値に基づいて連想配列キーをフィルターするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。