ホームページ > バックエンド開発 > PHPチュートリアル > PHP でインデックス付き配列値に基づいて連想配列キーをフィルターするにはどうすればよいですか?

PHP でインデックス付き配列値に基づいて連想配列キーをフィルターするにはどうすればよいですか?

DDD
リリース: 2024-12-13 11:52:10
オリジナル
756 人が閲覧しました

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

インデックス付き配列値に基づいて連想配列キーをフィルタリングする

多くのプログラマは、特定の値に基づいて連想配列からキーを選択的にフィルタリングするという課題に直面しています。インデックス付き配列に格納された値。 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)));
ログイン後にコピー

説明:

  • **array_flip($allowed)**: $allowed のキーと値を反転し、元のキーが値になる連想配列に変換します (逆も同様)。これにより、$my_array のキーを反転された配列の値と比較できるようになります。
  • array_intersect_key($my_array, $reversed): $my_array のキーと反転された $allowed 配列を交差させます。これにより、反転された配列内の値として存在する $my_array のキーのみが保持され、不要なキーが効果的に除外されます。

これらの関数を組み合わせることで、値に基づいて連想配列からキーを選択的に削除できます。キーを手動で繰り返して比較することなく、インデックス付き配列に入力できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート