インデックス付き配列のキーに基づいて連想配列をフィルタリングする
PHP では、array_filter() は、インデックス付き配列に基づいて連想配列をフィルタリングするための便利な方法を提供します。彼らの価値観について。ただし、この関数は値のみを考慮するため、プログラマは一連の許可された値に基づいてキーをフィルタリングする方法を模索する必要があります。この質問は、この課題に対処します。
連想配列 ($my_array) と許可されたキーのインデックス付き配列 ($allowed) が与えられた場合、タスクは、$allowed に存在しないすべてのキーを $my_array から削除することです。必要な出力は、キーが $allowed にあるキーと値のペアのみを含む $my_array です。
解決策:
答えは、2 つの配列操作を利用することを提案します。関数:
これら 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 サイトの他の関連記事を参照してください。