ホームページ  >  記事  >  バックエンド開発  >  PHPのarray_intersect_uassoc()関数の使い方を詳しく解説

PHPのarray_intersect_uassoc()関数の使い方を詳しく解説

WBOY
WBOYオリジナル
2023-06-27 09:21:31835ブラウズ

array_intersect_uassoc() は、PHP 言語の非常に便利な関数です。2 つ以上の配列のキーとキー値を比較し、すべての配列のすべてのキーの合計を含む新しい配列を返すために使用できます。入力配列 キー値の共通部分。この記事では、array_intersect_uassoc()関数の使い方を詳しく紹介し、わかりやすい例をいくつか紹介します。

基本的な使用例は次のとおりです:

$array1 = array("a" => "green", "b" => "blue", "c" => "red");
$array2 = array("a" => "green", "b" => "blue", "d" => "yellow");
$result = array_intersect_uassoc($array1, $array2, "compareFunc");
print_r($result);

この例では、$array1 と $array2 という 2 つの配列があり、どちらにもいくつかの異なるキーと対応するキー値が含まれています。これら 2 つの配列を array_intersect_uassoc() 関数に渡し、「compareFunc」という名前のコールバック関数を指定します。この関数は、配列要素間の関係を比較し、整数値を返すことによってそれらの関係を表します。この例では、配列変数 $result の値を出力して、関数によって返される共通部分を確認します。

配列のキーとキー値を比較するために使用されるコールバック関数を定義する必要があることに言及する価値があります。 $key1 および $key2 パラメーターはそれぞれ 2 つの配列のキー名を受け取り、$value1 および $value2 パラメーターはそれぞれ 2 つの配列のキー値を受け取ります。この関数では、文字列比較に strcmp() 関数を使用します。この関数は、2 つの文字列が等しい場合は 0 を返し、そうでない場合は正または負の値を返します。

function compareFunc($key1, $key2, $value1, $value2)
{
    $cmp_key = strcmp($key1, $key2);
    if ($cmp_key == 0) {
        $cmp_value = strcmp($value1, $value2);
        return $cmp_value;
    } else {
        return $cmp_key;
    }
}

前の手順でカスタムの CompareFunc() 関数を 3 番目のパラメーターとして array_intersect_uassoc() 関数に渡したため、この関数は 2 つの配列を比較するときに呼び出されます。配列に次の要素があるとします。

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4);
$array2 = array("a"=>1, "b"=>3, "c"=>5, "d"=>6);

array_intersect_uassoc($array1, $array2, "compareFunc") を実行すると、両方の入力配列に要素が存在する新しい配列が返されます。この例: array("a"=>1)。

文字列比較関数を使用して配列要素を比較することに加えて、array_intersect_uassoc() 関数は、比較のためのカスタム比較関数の使用もサポートします。たとえば、次の 2 つの配列があるとします。

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4);
$array2 = array("a"=>1, "b"=>3, "c"=>5, "d"=>6);

さまざまなコールバック関数を使用して、これら 2 つの配列を比較できます。 1 つは 2 つの整数を比較し、もう 1 つは 2 つの文字列を比較します。比較関数は次のように実装できます:

function compareFuncInt($a, $b)
{
   if($a === $b) return 0;
   return ($a > $b) ? 1 : -1;
}

function compareFuncStr($a, $b)
{
    return strcmp($a, $b);
}

array_intersect_uassoc() 関数を呼び出すときは、別の比較関数を指定するだけです:

$result1 = array_intersect_uassoc($array1, $array2, "compareFuncInt");
$result2 = array_intersect_uassoc($array1, $array2, "compareFuncStr");

この例では、カスタムの CompareFuncInt を使用します。 () 関数と CompareFuncStr() 関数。前者は整数の比較に使用され、後者は文字列の比較に使用されます。比較関数の後、簡単に表示できるように、比較全体の結果を別の結果配列に保存します。

つまり、 array_intersect_uassoc() は、複数の配列のキーとキー値を比較し、それらの共通部分を出力できる強力で柔軟な関数です。この機能にはさまざまな使用法と構成オプションがあるため、実際のニーズに応じて柔軟に使用する必要があります。

以上がPHPのarray_intersect_uassoc()関数の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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