php无序集合体砖有序_php中如何判断多维无序数组是一样的?

该博客介绍了如何对关联数组进行深度排序,并提供了通用的方法将多维数组转换为一维数组。此外,还展示了如何判断两个数组是否全等,通过json_encode与array_diff结合实现。这些技巧在处理复杂数据结构时非常实用。
摘要由CSDN通过智能技术生成

//仅适用于纯关联数组

function deep_ksort(&$arr) {

ksort($arr);

foreach ($arr as &$a) {

if (is_array($a) && !empty($a)) {

deep_ksort($a);

}

}

}

deep_ksort($a);

deep_ksort($b);

if(json_encode($a) == json_encode($b)){

echo "两个数组相同";

}

//通用方法

//此函数将多维数组转化为一维数组

function multiToSingle($arr, $delimiter = '->',$key = ' ') {

$resultAry = array();

if (!(is_array($arr) && count($arr)>0)) {

return false;

}

foreach ($arr AS $k=>$val) {

$k = is_numeric($k) ? 0 :$k; //若键是数字,则统一为0,避免索引不同导致数组的不同

$newKey = trim($key . $k . $delimiter);

if (is_array($val) && count($val)>0) {

$resultAry = array_merge($resultAry, multiToSingle($val, $delimiter, $newKey));

} else {

$resultAry[] = $newKey . $val;

}

}

return $resultAry;

}

//判断两数组是否全等

function judge($a,$b)

{

$single_A = multiToSingle($a);

$single_B = multiToSingle($b);

$arr1 = array_diff($single_A,$single_B);

$arr2 = array_diff($single_B,$single_A);

if(empty($arr1) && empty($arr2)){

echo "两数组全等";

}else{

echo "不全等";

};

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值