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

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

Mary-Kate Olsen
リリース: 2024-12-13 08:39:10
オリジナル
384 人が閲覧しました

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

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

PHP では、array_filter() は、インデックス付き配列に基づいて連想配列をフィルタリングするための便利な方法を提供します。彼らの価値観について。ただし、この関数は値のみを考慮するため、プログラマは一連の許可された値に基づいてキーをフィルタリングする方法を模索する必要があります。この質問は、この課題に対処します。

連想配列 ($my_array) と許可されたキーのインデックス付き配列 ($allowed) が与えられた場合、タスクは、$allowed に存在しないすべてのキーを $my_array から削除することです。必要な出力は、キーが $allowed にあるキーと値のペアのみを含む $my_array です。

解決策:

答えは、2 つの配列操作を利用することを提案します。関数:

  • array_intersect_key(): これ関数は、キーを使用して 2 つの配列間の比較を実行します。両方の配列に存在するキーのみを含む新しい配列を返します。
  • array_flip(): この関数は、連想配列のキーと値を反転し、キーを値に変換し、その逆も同様です。

これら 2 つの関数を組み合わせると、次のように連想配列をフィルタリングできます。

$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次のようになります:

array("foo" => 1);
ログイン後にコピー

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

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