ホームページ > バックエンド開発 > PHPの問題 > PHP で配列を比較すると何が起こるか

PHP で配列を比較すると何が起こるか

PHPz
リリース: 2023-04-19 09:30:47
オリジナル
710 人が閲覧しました

配列は PHP において非常に重要なデータ型であり、データの保存、パラメータの受け渡しなど、さまざまなシナリオで広く使用されています。多くの場合、2 つ以上の配列を比較して、それらが等しいかどうかを判断する必要があります。では、PHP で配列を比較するとどうなるでしょうか?

PHP では配列を比較するための演算子が 2 つあり、「==」と「===」です。これら 2 つの演算子の比較結果は異なります。まず、「==」演算子の比較規則を見てみましょう。

「==」演算子を使用して 2 つの配列を比較すると、配列内の各要素が 1 つずつ比較されます。具体的には、まず 2 つの配列の要素の数が等しいかどうかを比較します。数値が等しい場合は、各要素を 1 つずつ比較します。そうでない場合は、直接 false が返されます。要素の比較中に、配列内の 1 つの要素が別の配列内のいずれかの要素と等しい場合、2 つの要素は等しいとみなされます。ここでいう等しいとは、2つの要素のキー値と値が同じであることを意味し、キー値と値が同じ場合にのみ等しい。

次の例は、「==」演算子を使用して 2 つの配列を比較するプロセスを示しています。

$arr1 = array("apple", "banana", "orange" ) ;
$arr2 = array("バナナ", "オレンジ", "リンゴ");

if ($arr1 == $arr2) {

echo "Two arrays are equal.";
ログイン後にコピー
ログイン後にコピー

} else {

echo "Two arrays are not equal.";
ログイン後にコピー
ログイン後にコピー

}

出力結果は「2 つの配列は等しくありません。」です。これは、配列 $arr1 と配列 $arr2 に同じ要素が含まれていますが、順序は異なるため、「==」演算子の比較規則によれば、それらは等しくないためです。

次に、「===」演算子の比較規則を見てみましょう。

「===」演算子を使用して 2 つの配列を比較する場合、最初に 2 つの配列の参照が等しいかどうか、つまり、それらが同じ配列を指しているかどうかが比較されます。同じ配列でない場合は、直接 false を返します。そうでない場合は、「==」演算子の規則に従って各要素が等しいかどうかを比較します。

次の例は、「===」演算子の使用法を示しています。

$arr1 = 配列("リンゴ"、"バナナ"、"オレンジ");
$arr2 = 配列("リンゴ"、"バナナ"、"オレンジ");
$arr3 = &$arr1;

if ($arr1 === $arr2) {

echo "Two arrays are equal.";
ログイン後にコピー
ログイン後にコピー

} else {

echo "Two arrays are not equal.";
ログイン後にコピー
ログイン後にコピー

}

if ($arr1 === $arr3) {

echo "Two arrays are the same.";
ログイン後にコピー

} else {

echo "Two arrays are not the same.";
ログイン後にコピー

}

出力結果は、「2 つの配列は等しくありません。」および「2 つの配列は同じです」です。 「」。これは、$arr1 と $arr2 には同じ要素が含まれていますが、それらは同じ配列ではなく、$arr1 と $arr3 は同じ配列であり、同じメモリ空間を指しているためです。

実際のプログラミングでは、状況に応じて「==」演算子を使用するか「===」演算子を使用するかを選択する必要があります。配列内の要素値、キー名、順序を比較する必要がある場合は、「==」演算子を使用する必要があります。配列が参照、要素値、キー名、順序を含めて完全に同じであるかどうかを比較する必要がある場合は、「==」演算子を使用する必要があります。の場合は、「===」演算子記号を使用する必要があります。

最後に、配列を比較する場合、配列にオブジェクトが含まれている場合、比較結果はこのオブジェクトによって決定されることに注意してください。 PHP におけるオブジェクトの比較は参照に基づいているため、オブジェクトの 2 つの配列に異なる参照がある場合、2 つの配列は等しくないものとみなされます。

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

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