現在の位置: ホーム> 最新記事一覧> array_fill_keys and array_intersect_keyキーフィルタリングを実装します

array_fill_keys and array_intersect_keyキーフィルタリングを実装します

M66 2025-05-17

PHPプログラミングでは、アレイ操作は最も一般的なタスクの1つです。特に、多次元配列を扱う場合、またはキー価値ペアをフィルタリングする場合、PHPはこのタイプの操作を簡素化するために多くの機能を提供します。その中で、 array_fill_keysarray_intersect_key関数は、特に特定のキーをフィルタリングする必要がある場合、コードの可読性と実行効率を大幅に改善することができます。

1。array_fill_keysarray_intersect_keyの紹介

  1. array_fill_keys

    この関数は、キーが指定された配列の値である新しい配列を作成し、すべてのキーに対応する値は同じ値で満たされます。この関数は、特定のキーを使用して新しい配列を初期化するのに非常に適しています。

     array_fill_keys(array $keys, mixed $value): array
    
    • $キー:新しい配列で使用するキーを示すキーの配列。

    • $値:各キーに対応する値。

  2. array_intersect_key

    この関数は、指定された配列と同じキーを持つ元の配列の要素を含む配列を返します。大きな配列から必要なキー価値ペアを抽出するのに最適です。

     array_intersect_key(array $array1, array $array2): array
    
    • $ array1 :元の配列。

    • $ array2 :元の配列と一致するためにキーを使用する配列。

2。array_fill_keysarray_intersect_keyを使用して、効率的なキーフィルタリングを実現するにはどうすればよいですか?

多数のキーを含む複数のユーザー情報の配列があり、特定のキーのみを保持したいとします。従来のアプローチは、 Array_fill_keysarray_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_keysarray_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
)

説明する:

  1. array_fill_keys($ keys_to_keep、null)を使用して、新しい配列$ empty_keysを作成します。キーは保持する必要があり、値はnullです。この配列の機能は、キーをフィルタリングするためのテンプレートとして機能することです。

  2. 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つの配列のキーを比較し、同じキーで要素を返します。

3。概要

array_fill_keysarray_intersect_keysを組み合わせることにより、Arrayキーフィルタリングを非常に効率的に使用できます。この方法は、コードの読みやすさを改善するだけでなく、大量のデータを処理する際のパフォーマンスを向上させます。 1つの配列からキーをフィルタリングするか、複数の配列から一般的なキーを抽出しているかどうかにかかわらず、どちらの機能も非常に便利です。

この記事が、これらの2つの機能を使用して効率的なキーフィルタリング操作を実行し、PHPプログラミング機能を改善する方法を理解するのに役立つことを願っています。