以前关于SO的研究记录:
至少我相信:
举个例子:
$arr1 = [21, 23, 25];
$arr2 = [25, 21, 23];
最简单,非破坏性的方法是将这些值与相等的值进行比较,无论顺序如何
$arr1s = $arr1;
$arr2s = $arr2;
sort($arr1s, SORT_NUMERIC);
sort($arr2s, SORT_NUMERIC);
$isSameValues = ($arr1s === $arr2s);
或者有更简单,更清洁的方法吗?
答案 0 :(得分:4)
使用array_count_values
与O(n)
O(n log n)
进行排序
$a = [1, 1, 3, 2];
$b = [1, 2, 2, 3];
var_dump (array_count_values($b) == array_count_values($a)); //false
注意:这仅适用于所有值都是字符串或整数的数组。
答案 1 :(得分:0)
你非常接近正确的解决方案! 这是你修改的代码:
$arr1 = [21, 23, 25];
$arr2 = [25, 21, 23];
$arr1s = $arr1;
$arr2s = $arr2;
sort($arr1s, SORT_NUMERIC);
sort($arr2s, SORT_NUMERIC);
$isSameValues = ($arr1 == $arr2);
在此处查看:http://sandbox.onlinephpfunctions.com/code/b737d3a9cf45e077a0d1f2c0195f389b81ace4a3
如果两个数组具有相同的键和值,则==
就足够了,如here所示: