1

PHPに次のような2つの複雑なネストされた配列があるとします。

$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データです)。コンテンツは任意にネストできますが、循環参照は含まれないと想定します。

キーの順序を無視して、それらが等しいかどうかを確認する最も簡単な方法は何ですか?たとえば、上記の2つは同等に比較する必要があります。しかし、もしそうならなかっ$b["x"]array(4, 6, 5)でしょう。

再帰的ksortに結果を比較することはできますが、どちらのオペランドも変更したくありません。これは、私が知らない単純な1行のソリューションを持っている可能性があるもののようです。何かありますか?

4

1 に答える 1

2

これを行う最善の方法は、すでにあなたによって言及されています。しかし、あなたは1つのことを忘れていました。

  1. 配列をコピーする
  2. 配列を並べ替える
  3. 比較する 2

同じ?完全。そして、あなたはまだオリジナルを持っています。

于 2012-05-24T23:40:21.640 に答える