PHPプログラミングでは、アレイ操作は最も一般的なタスクの1つです。特に、多次元配列を扱う場合、またはキー価値ペアをフィルタリングする場合、PHPはこのタイプの操作を簡素化するために多くの機能を提供します。その中で、 array_fill_keysとarray_intersect_key関数は、特に特定のキーをフィルタリングする必要がある場合、コードの可読性と実行効率を大幅に改善することができます。
array_fill_keys
この関数は、キーが指定された配列の値である新しい配列を作成し、すべてのキーに対応する値は同じ値で満たされます。この関数は、特定のキーを使用して新しい配列を初期化するのに非常に適しています。
array_fill_keys(array $keys, mixed $value): array
$キー:新しい配列で使用するキーを示すキーの配列。
$値:各キーに対応する値。
この関数は、指定された配列と同じキーを持つ元の配列の要素を含む配列を返します。大きな配列から必要なキー価値ペアを抽出するのに最適です。
array_intersect_key(array $array1, array $array2): array
$ array1 :元の配列。
$ array2 :元の配列と一致するためにキーを使用する配列。
多数のキーを含む複数のユーザー情報の配列があり、特定のキーのみを保持したいとします。従来のアプローチは、 Array_fill_keysとarray_intersect_keysを使用しながら、Array_fill_keysを使用しながら、Arrayを通過して条件付き判断を行うためにForeachを使用して、コードをより簡潔で効率的にすることです。
ユーザー情報を含む配列があるとします。
$user_info = [
'name' => 'John',
'email' => 'john@example.com',
'age' => 30,
'address' => '123 Main St',
'phone' => '123-456-7890'
];
ユーザーの名前、電子メール、年齢のみを気にしているため、他のキー(住所や電話など)は必要ありません。以下は、 array_fill_keysとarray_intersect_keyを介してキーフィルタリングを実装する方法を示しています。
// 保持されるキー
$keys_to_keep = ['name', 'email', 'age'];
// 必要なキーを含む新しい配列を作成します,値はです null
$empty_keys = array_fill_keys($keys_to_keep, null);
// 使用 array_intersect_key 不要なキーを除外します
$filtered_user_info = array_intersect_key($user_info, $empty_keys);
print_r($filtered_user_info);
Array
(
[name] => John
[email] => john@example.com
[age] => 30
)
array_fill_keys($ keys_to_keep、null)を使用して、新しい配列$ empty_keysを作成します。キーは保持する必要があり、値はnullです。この配列の機能は、キーをフィルタリングするためのテンプレートとして機能することです。
array_intersect_key($ user_info、$ empty_keys)を使用して、 $ empty_keysと同じ要素を$ user_info arrayに保持し、それによって不要なキーを除外します。
この方法の利点は次のとおりです。
foreachループを使用する必要はありません。
キーのフィルタリングは非常に簡潔に達成できます。
配列が大きい場合、 array_intersect_keyのパフォーマンスは、 foreachループよりも効率的になります。
配列からキーをフィルタリングすることに加えて、 array_intersect_keyを使用して、複数の配列から一般的なキーをフィルタリングすることもできます。ユーザー情報を含む1つの配列と、管理者の許可情報を含む2つの配列があるとします。Array_intersect_keyを使用して、両方の配列で同じキーを取得できます。
$user_info = [
'name' => 'John',
'email' => 'john@example.com',
'age' => 30,
'address' => '123 Main St',
'phone' => '123-456-7890'
];
$admin_info = [
'name' => 'John',
'email' => 'john@example.com',
'role' => 'admin'
];
// 2つの配列の共通キーを取得します
$common_keys = array_intersect_key($user_info, $admin_info);
print_r($common_keys);
Array
(
[name] => John
[email] => john@example.com
)
array_intersect_key 2つの配列のキーを比較し、同じキーで要素を返します。
array_fill_keysとarray_intersect_keysを組み合わせることにより、Arrayキーフィルタリングを非常に効率的に使用できます。この方法は、コードの読みやすさを改善するだけでなく、大量のデータを処理する際のパフォーマンスを向上させます。 1つの配列からキーをフィルタリングするか、複数の配列から一般的なキーを抽出しているかどうかにかかわらず、どちらの機能も非常に便利です。
この記事が、これらの2つの機能を使用して効率的なキーフィルタリング操作を実行し、PHPプログラミング機能を改善する方法を理解するのに役立つことを願っています。