迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

在 PHP 中比较两个数组

作者:迹忆客 最近更新:2023/03/15 浏览次数:

各种操作都是用复杂度不同的数组来完成的,比较操作也不例外。当我们比较两个值时,我们打算了解它们的相似或不同之处。

对于数字(整数和浮点数)、字符和字符串,它可以很简单。但是,对于数组,它可能会变得有点复杂。

不要担心,因为它很简单,而且我们可以使用不同的运算符。无论比较严格与否,都有一个运算符。

本文将讨论四个运算符和三个函数,它们使比较两个数组变得容易,以及如何通过出色的示例来实现它。

在 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() 函数,你可以比较两个数组并返回存在于两个元素中的元素。使用上一节中相同的两个数组,你会在返回数组中找到 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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 PHP 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:183 分类:PHP

本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

PHP 中的重定向

发布时间:2023/03/29 浏览次数:136 分类:PHP

本教程演示了如何将用户从页面重定向到 PHP 中的其他页面

PHP 分页

发布时间:2023/03/29 浏览次数:66 分类:PHP

本教程介绍如何在 PHP 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便