ホームページ > バックエンド開発 > PHPの問題 > PHP は配列が等しいかどうかを比較します

PHP は配列が等しいかどうかを比較します

WBOY
リリース: 2023-05-07 14:44:09
オリジナル
544 人が閲覧しました

PHP は強力で広く使用されているプログラミング言語であり、配列関連の関数とメソッドが多数提供されており、開発者は配列に対してさまざまな操作を簡単に実行できます。配列を使用する場合、2 つの配列が等しいかどうかを比較する必要があることがよくありますが、この記事では、PHP が配列の等しいかどうかを比較する方法と、関連する実践的なスキルを紹介します。

  1. == 演算子を使用する

PHP で「==」演算子を使用すると、2 つの配列が等しいかどうかを比較できます。 2 つの配列が同じキーと値のペアを持ち、キーと値のペアが同じ順序である場合、それらの配列は等しいとみなされます。例:

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
ログイン後にコピー

$arr1 と $arr2 には同じキーと値のペアがあり、これらのキーと値のペアの順序も同じであるため、出力結果は「2 つの配列が等しい」となります。

ただし、「==」演算子は配列のキーと値が等しいかどうかを比較するだけであり、配列の型は比較しないことに注意してください。例:

$arr1 = array(1, 2, 3);
$arr2 = array('1', '2', '3');

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
ログイン後にコピー

$arr1 と $arr2 の型は異なりますが、出力結果は「2 つの配列が等しい」となります。これは、「==」演算子が型ではなくキーと値の等価性のみを比較するためです。

  1. === 演算子を使用します

配列のキー、値、型が等しいかどうかを同時に比較したい場合は、次のようにする必要があります。 「===」演算子を使用します。例:

$arr1 = array(1, 2, 3);
$arr2 = array('1', '2', '3');

if ($arr1 === $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
ログイン後にコピー

$arr1 と $arr2 の型が異なるため、出力結果は「2 つの配列は等しくありません」となります。

  1. カスタム比較関数

場合によっては、配列のキーと値が等しいかどうかを比較する必要がありますが、キーの順序は値のペアは異なる場合があります。現時点では、PHP の usort() 関数とカスタム比較関数を使用してこれを実現できます。例:

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

$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

usort($arr1, 'cmp');
usort($arr2, 'cmp');

if ($arr1 == $arr2) {
    echo '两个数组相等';
} else {
    echo '两个数组不相等';
}
ログイン後にコピー

usort() 関数とカスタム比較関数 cmp() を使用して 2 つの配列を並べ替えて比較したため、出力結果は「2 つの配列が等しい」になります。

  1. 注意事項

配列を比較するときは、次の点にも注意する必要があります。

  • 配列に別の配列が含まれている場合、およびキーと値のペアが同じでも順序が異なる場合、それらは異なる配列として扱われます。
  • 同じキー名が 2 つの配列に存在するが、キーの値が異なる場合、それらは異なる配列とみなされます。
  • カスタム比較関数を使用する場合、比較を正しく実行するには、関数の戻り値が 0、1、または -1 であることを確認する必要があります。
  1. 実践的な例

以下は、複数のメソッドを使用して配列が等しいかどうかを比較する実践的な例です。

<?php
// 比较数组是否相等
$arr1 = array('a' => 1, 'b' => 2, 'c' => 3);
$arr2 = array('b' => 2, 'a' => 1, 'c' => 3);

// 方法一:使用“==”运算符
if ($arr1 == $arr2) {
    echo '方法一:两个数组相等';
} else {
    echo '方法一:两个数组不相等';
}

echo '<br>';

// 方法二:使用“===”运算符
if ($arr1 === $arr2) {
    echo '方法二:两个数组相等';
} else {
    echo '方法二:两个数组不相等';
}

echo '<br>';

// 方法三:使用usort()函数和自定义比较函数
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

usort($arr1, 'cmp');
usort($arr2, 'cmp');

if ($arr1 == $arr2) {
    echo '方法三:两个数组相等';
} else {
    echo '方法三:两个数组不相等';
}
?>
ログイン後にコピー

上記のコードを実行します。その後、次の結果が出力されます。

方法一:两个数组相等
方法二:两个数组不相等
方法三:两个数组相等
ログイン後にコピー
  1. summary

PHP では、配列が等しいかどうかを比較するのは非常に一般的なタスクです。 「==」演算子を使用して配列のキーと値が等しいかどうかを比較し、「===」演算子を使用して配列のキー、値、および型が等しいかどうかを比較できます。 usort() 関数とカスタム比較関数も使用して比較します。配列を比較するときは、配列内に同じキー名とキー値が存在するかどうか、およびキーと値のペアの順序が同じかどうかにも注意する必要があります。上記の方法を使用すると、配列が等しいかどうかを簡単に比較できるため、コードの可読性と保守性が向上します。

以上がPHP は配列が等しいかどうかを比較しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート