假设我在 PHP 中有两个复杂的嵌套数组,如下所示:
$a = array(
"x" => array(4, 5, 6),
"y" => array("z" => "foo", "q" => "bar")
);
$b = array(
"y" => array("q" => "bar", "z" => "foo"),
"x" => array(4, 5, 6)
);
(在这种情况下,它们是从不同来源解码的 JSON 数据)。假设内容可以任意嵌套,但不会包含任何循环引用。
检查它们是否相等,忽略键顺序的最直接方法是什么?例如,以上两个应该比较相等。但是,如果$b["x"]
是的话,array(4, 6, 5)
他们就不会了。
我可以递归地ksort
比较结果,但我真的不想修改任何一个操作数,这似乎有一个我不知道的简单的单行解决方案。外面有什么吗?