PHP で 2つの配列を比較する

Olorunfemi Akinlua 2023年1月30日
  1. PHP で == および!= 演算子を使用して 2つの配列を比較する
  2. PHP で === および!== 演算子を使用して 2つの配列を比較する
  3. PHP で順序が重要でない場合は、sort() 関数を使用して 2つの配列を比較する
  4. array_diff() 関数を使用して 2つの配列を比較し、PHP での違いを返す
  5. PHP で array_intersect() 関数を使用して 2つの配列を比較し、一致を返す
PHP で 2つの配列を比較する

あらゆる種類の操作は、複雑さが異なるアレイを使用して実行され、比較操作も同じです。2つの値を比較するとき、それらがどれほど類似しているか、または類似していないかを理解することを目的としています。

数字(整数と浮動小数点数)、文字、および文字列を使用すると、簡単にできます。ただし、アレイを使用すると、少し複雑になる可能性があります。

簡単で、さまざまな演算子を使用できるので、心配しないでください。厳密な比較であろうとなかろうと、演算子があります。

この記事では、2つのアレイの比較を容易にする 4つの演算子と 3つの関数、および優れた例を使用してそれを実現する方法について説明します。

PHP で == および!= 演算子を使用して 2つの配列を比較する

最初の演算子は == 演算子です。これは等式演算子であり、2つの配列をこの演算子と比較すると、最初の配列が 2 番目の配列と等しいかどうかを知ることができます。

比較操作は、2つの値の間の類似点または非類似点を見つけることに焦点を当てています。したがって、== 演算子を使用すると、ブール応答が得られます。ここで、TRUE は類似性を表し、FALSE は非類似性を表します。

ここでは、コードは == 演算子を使用して 2つの配列を比較しています。

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array(5, 2.45, 'hello', 3.56, 4);

// Check for equality
if ($arr1 == $arr2)
    echo "Similar Arrays";
else
    echo "Not Similar Arrays";

?>

出力:

Not Similar Arrays

不等式演算子である!= 演算子を使用できます。この演算子を使用して 2つの配列を比較する場合、最初の配列が 2 番目の配列と等しくないかどうかを知る必要があります。

ブール応答をリリースします。TRUE は非類似性を表し、FALSE は類似性を表します。

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array(5, 2.45, 'hello', 3.56, 4);

// Check for inequality
if ($arr1 != $arr2)
    echo "Not Similar Arrays";
else
    echo "Similar Arrays";

?>

出力:

Not Similar Arrays

これらの 2つの演算子は、連想配列と多次元配列を処理し、キーではなく値のみを比較します。

PHP で === および!== 演算子を使用して 2つの配列を比較する

== 演算子と同様に、=== 演算子を使用すると、2つの値を比較して類似性を確認できます。ただし、連想配列のコンテキストで、最初の配列と 2 番目の配列が同じキー/値のペアを持っている場合、== 演算子は TRUE を返します。

ただし、=== は、最初の配列と 2 番目の配列が同じ順序で同じタイプの同じキー/値のペアを持っている場合に TRUE を返します。

前のセクションと同じコードを使用して、いくつかのタイプを変更し、== 演算子と === 演算子の両方を使用します。

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array('4', '5', 'hello', '2.45', '3.56');

// Check for equality
if ($arr1 == $arr2)
    echo "Similar Arrays";
else
    echo "Not Similar Arrays";

?>

出力:

Similar Arrays

=== 演算子を使用する場合

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array('4', '5', 'hello', '2.45', '3.56');

// Check for equality
if ($arr1 === $arr2)
    echo "Similar Arrays";
else
    echo "Not Similar Arrays";

?>

連想配列で使用すると、同じ動作が見られます。以下のコードでは、キーではなく値の観点から 2つの配列を比較します。

<?php

$arr1 = array("first" => 4, "second" => 5, "type" => 'hello');
$arr2 = array("one" => '4', "two" => '5', "third" => 'hello', );

// Check for equality
if ($arr1 === $arr2)
    echo "Similar Arrays";
else
    echo "Not Similar Arrays";

?>

出力:

Not Similar Arrays

PHP で順序が重要でない場合は、sort() 関数を使用して 2つの配列を比較する

要素の順序が重要でない場合は、sort() 関数を使用して 2つの配列を比較できます。したがって、sort() 関数を両方の配列に適用してから、ソートされた配列が等しいかどうかを比較します。

<?php

$arr1 = array(4, 5, 'hello', 2.45, 3.56);
$arr2 = array(5, 2.45, 'hello', 3.56, 4);

// Sort the array elements
sort($arr1);
sort($arr2);

// Check for equality
if ($arr1 == $arr2)
    echo "Both arrays are same, when sorted";
else
    echo "Both arrays are not same, even when sorted";

?>

出力:

Both arrays are same, when sorted

array_diff() 関数を使用して 2つの配列を比較し、PHP での違いを返す

2つの配列を比較し、2つの配列間の差を返すことができます。そのために、array_diff() 関数を使用します。この関数を使用すると、2つの配列を比較して、2 番目の配列にはない最初の配列の要素を含む戻り配列を期待できます。

<?php

$first = array("12", 34, true, 45, 67);
$second = array("12", 21, 89, 45);

print_r(array_diff($first, $second));

?>

出力:

Array
(
    [1]    34
    [2]    1
    [4]    67
)
   true

配列を返す array_diff() 関数の影響で配列を配置する順序を知っておく必要があります。同じコードで、配列の順序を変更すると、以下の出力が結果になります。

Array
(
    [1]    21
    [2]    89
)
   true

そして、違いがない場合、コードは空の配列を返します。

PHP で array_intersect() 関数を使用して 2つの配列を比較し、一致を返す

array_intersect() 関数を使用すると、2つの配列を比較して、両方の要素に存在する要素を返すことができます。前のセクションと同じ 2つの配列を使用すると、戻り配列に 1245 があります。

<?php

$first = array("12", 34, true, 45, 67);
$second = array("12", 21, 89, 45);

print_r(array_intersect($first, $second));

?>

出力:

Array
(
    [0]    12
    [3]    45
)
   true
Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn

関連記事 - PHP Array