php+数组中比较大小,php – 如何比较两个数组中的值?

似乎我读到的用于比较数组的每个PHP函数(array_diff(),array_intersect()等)都比较了数组元素的存在.

给定两个具有相同结构的多维数组,您如何列出值的差异?

数组1

[User1] => Array ([public] => 1

[private] => 1

[secret] => 1

)

[User2] => Array ([public] => 1

[private] => 0

[secret] => 0

)

数组2

[User1] => Array ([public] => 1

[private] => 0

[secret] => 1

)

[User2] => Array ([public] => 1

[private] => 0

[secret] => 0

)

区别

[User1] => Array ([public] => 1

[private] => 0 //this value is different

[secret] => 1

)

所以我的结果是 – “在所有用户中,User1已经改变,不同之处在于private是0而不是1.”

解决方法:

一种方法是编写一个函数来做类似的事情.

function compareArray ($array1, $array2)

{

foreach ($array1 as $key => $value)

{

if ($array2[$key] != $value)

{

return false;

}

}

return true;

}

您可以轻松地扩充该函数以返回两者中的差异数组.

编辑 – 这是一个精致的版本,更接近你正在寻找的东西:

function compareArray ($array1, $array2)

{

var $differences;

foreach ($array1 as $key => $value)

{

if ($array2[$key] != $value)

{

$differences[$key][1] = $value;

$differences[$key][2] = $array2[$key];

}

}

if (sizeof($differences) > 0)

{

return $differences;

}

else

{

return true;

}

}

标签:php,arrays,comparison

来源: https://codeday.me/bug/20190607/1193180.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值