文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

在 PHP 中比较两个数组

2024-02-27 20:25

关注

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

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

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

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

在 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
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯