ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列をフィルタリングするときにキーを保持するにはどうすればよいですか?
array_intersect_key と array_flip を使用した配列フィルタリングでのキーの保持
PHP では、array_filter() 関数を使用して配列から要素を削除できます。カスタム コールバック関数に基づいています。ただし、コールバックはキーではなく配列の値のみを受け取ります。
連想配列 ($my_array) とインデックス付き配列内の許可されたキーのリスト ($allowed) があるシナリオを考えてみましょう。目標は、$my_array をフィルタリングし、$allowed に存在しないすべてのキーを削除することです。
最も効果的なアプローチは、array_intersect_key 関数と array_flip 関数を活用することです。 array_intersect_key 関数は、別の配列に存在するキーに基づいて配列のキーと値のペアをフィルター処理します。 array_flip 関数は、配列のキーと値を反転し、値とキーの間のマッピングを効果的に作成します。
これらの関数を組み合わせることで、目的のフィルタリングを実現できます。
$filtered_array = array_intersect_key($my_array, array_flip($allowed));
このコード$my_array のキーと値のペアのみを含む新しい配列 ($filtered_array) を作成します。この配列には、キーが $allowed に存在します。結果は目的の出力と同じになります:
array( ["foo"] => 1 )
以上がPHP で配列をフィルタリングするときにキーを保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。