在 PHP 中比較兩個陣列
-
在 PHP 中使用
==
和!=
運算子比較兩個陣列 -
在 PHP 中使用
===
和!==
運算子比較兩個陣列 -
在 PHP 中當順序不重要時使用
sort()
函式來比較兩個陣列 -
在 PHP 中使用
array_diff()
函式比較兩個陣列並返回差值 -
在 PHP 中使用
array_intersect()
函式比較兩個陣列並返回匹配項
各種操作都是用複雜度不同的陣列來完成的,比較操作也不例外。當我們比較兩個值時,我們打算了解它們的相似或不同之處。
對於數字(整數和浮點數)、字元和字串,它可以很簡單。但是,對於陣列,它可能會變得有點複雜。
不要擔心,因為它很簡單,而且我們可以使用不同的運算子。無論比較嚴格與否,都有一個運算子。
本文將討論四個運算子和三個函式,它們使比較兩個陣列變得容易,以及如何通過出色的示例來實現它。
在 PHP 中使用 ==
和 !=
運算子比較兩個陣列
第一個運算子是 ==
運算子。它是相等運算子,當我們用這個運算子比較兩個陣列時,我們打算知道第一個陣列是否等於第二個陣列。
比較操作的重點是找出兩個值之間的相似之處或不同之處。因此,使用 ==
運算子,你可以獲得布林響應,其中 TRUE 表示相似性,FALSE 表示不相似性。
在這裡,程式碼使用 ==
運算子來比較兩個陣列。
<?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
你可以使用!=
運算子,一個不等式運算子。當我們用這個運算子比較兩個陣列時,我們打算知道第一個陣列是否不等於第二個陣列。
它釋出一個布林響應,其中 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
這兩個運算子適用於關聯陣列和多維陣列,並且只會比較值,而不是鍵。
在 PHP 中使用 ===
和 !==
運算子比較兩個陣列
與 ==
運算子類似,===
運算子允許比較兩個值的相似性。但是,如果第一個陣列和第二個陣列在關聯陣列的上下文中具有相同的鍵/值對,則 ==
運算子將返回 TRUE。
但是,如果第一個陣列和第二個陣列具有相同順序和相同型別的相同鍵/值對,===
將返回 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";
?>
當我們將它與關聯陣列一起使用時,我們會看到相同的行為。在下面的程式碼中,我們將比較兩個陣列的值而不是鍵。
<?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()
函式來比較兩個陣列
對於元素順序不重要的情況,你可以使用 sort()
函式並比較兩個陣列。因此,你將 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
在 PHP 中使用 array_diff()
函式比較兩個陣列並返回差值
我們可以比較兩個陣列並返回兩個陣列之間的差異,為此,我們使用 array_diff()
函式。使用這個函式,我們可以比較兩個陣列,並期望返回一個陣列,其中包含第一個陣列中不包含在第二個陣列中的元素。
<?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()
函式比較兩個陣列並返回匹配項
使用 array_intersect()
函式,你可以比較兩個陣列並返回存在於兩個元素中的元素。使用上一節中相同的兩個陣列,你會在返回陣列中找到 12
和 45
。
<?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 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