ホームページ  >  記事  >  バックエンド開発  >  PHP8の配列関数:array_intersect_key()の効率的な応用方法

PHP8の配列関数:array_intersect_key()の効率的な応用方法

PHPz
PHPzオリジナル
2023-05-18 18:31:36964ブラウズ

PHP8 の配列関数: array_intersect_key() の効率的な適用方法

PHP プログラミング言語では、配列は非常に重要なデータ型です。配列を扱う場合、開発者は多くの場合、特定のタスクを実行するために配列関数を使用する必要があります。 PHP8 の新しい関数 array_intersect_key() を使用すると、複数の配列を比較し、同じキーに対応する値を返すことができます。この記事では、array_intersect_key() 関数を使用して効率的なアプリケーション シナリオの概要を説明する方法を説明します。

array_intersect_key() 関数の概要

array_intersect_key() 関数は、2 つ以上の配列を比較し、すべての入力配列に存在するキーと値を含む配列を返します。関数の構文は次のとおりです。

array array_intersect_key(array $array1, array $array2 [, array $... ])

このうち、$array1 と $array2 は渡される 2 つの配列を参照し、次のオプションの配列は任意の数の追加の配列を参照します。この関数はすべての配列のキーを比較し、すべての配列に存在するキーとそれに対応する値を含む新しい配列を返します。

array_intersect_key() 関数を使用して 2 つの配列の共通部分を表示する

次の例は、array_intersect_key() 関数を使用して 2 つの配列の共通部分を表示する方法を示します。

実行結果には次の情報が表示されます:

$array1 = array('a' => 'red', 'b' => 'green', 'c' => 'blue');
$array2 = array('a' => 'red', 'b' => 'blue', 'd' => 'orange');

$result = array_intersect_key($array1, $array2);
print_r($result);

この例では、2 つの配列 $array1 と $array2 を定義し、array_intersect_key() 関数を使用してそれらのキー名を比較します。関数によって返される結果は、両方の配列に含まれるキー名と対応する値です。つまり、「a => red」のエントリは 1 つだけです。この関数は非常に高速な操作であるため、PHP プログラムで広く使用できます。

array_intersect_key() 関数を使用して複数の配列の共通部分を表示する

array_intersect_key() 関数は、2 つの配列の比較に加えて、複数の配列間の共通部分を比較することもできます。次の例では、関数を使用して 3 つの配列間のキー名の交差部分を比較する方法を示します。

Array
(
    [a] => red
)

実行結果には、次の情報が表示されます。

$array1 = array('a' => 'red', 'b' => 'green', 'c' => 'blue');
$array2 = array('a' => 'red', 'b' => 'blue', 'd' => 'orange');
$array3 = array('a' => 'red', 'b' => 'green', 'e' => 'yellow');

$result = array_intersect_key($array1, $array2, $array3);
print_r($result);

この例では、次のように定義します。 3 つの配列 $array1、$array2、$array3 を作成し、array_intersect_key() 関数を使用してそれらのキー名を比較します。関数によって返される結果は、キー名と 3 つの配列に含まれる対応する値です。つまり、2 つのエントリ 'a => red' と 'b => green' があります。 2 つの配列の共通部分の比較とは異なり、複数の配列の共通部分の比較は完了までに時間がかかる場合があるため、大量のデータを扱うときはプログラムの過負荷を避けるために細心の注意を払う必要があります。

array_intersect_key() 関数を使用してオブジェクトを比較する

PHP8 では、array_intersect_key() 関数を使用してオブジェクトを比較することもできます。この場合、配列のキーがオブジェクトのプロパティ名になり、対応する値がプロパティ値になります。次の例は、array_intersect_key() 関数を使用して 2 つのオブジェクト間のキー交差を比較する方法を示しています。

Array
(
    [a] => red
    [b] => green
)

この例を実行すると、次の出力が表示されます。

class MyClass {
    public $a = 'red';
    private $b = 'green';
    protected $c = 'blue';
}

$obj1 = new MyClass();
$obj2 = new MyClass();
$obj2->a = 'blue';
$obj2->d = 'orange';

$result = array_intersect_key(get_object_vars($obj1), get_object_vars($obj2));
print_r($result);

この例ではでは、MyClass クラス $obj1 と $obj2 の 2 つのインスタンスを定義し、array_intersect_key() 関数を使用してそれらのプロパティを比較します。関数によって返される結果は、両方のオブジェクトに含まれる属性名と対応する値です。つまり、「a => red」のエントリは 1 つだけです。この関数はオブジェクトのプロパティのみを比較でき、オブジェクトのメソッドは比較できないことに注意してください。

概要

この記事では、PHP8 の新しい配列関数 array_intersect_key() の使用法を紹介しました。 2 つ以上の配列間のキーの共通部分を比較する方法を示し、この関数の効率的な使用法を示しました。また、この関数を 2 つのオブジェクト間のプロパティ名の共通部分を比較するために適用する方法も示しました。オブジェクトのプロパティ名は配列のキーです。 PHP8 アプリケーションを開発する場合、array_intersect_key() 関数を使用すると、コーディングをより簡単、高速、効率的に行うことができます。

以上がPHP8の配列関数:array_intersect_key()の効率的な応用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。