例は次のとおりです。
実際の演算は 3 次元配列であり、データ量は比較的多くなります。
$a = [
['名前'=>'ジャック', '性別'=>'男性'],
['年齢'=>18、'国'=>'中国']
];
$b = [
['国'=>'中国','年齢'=>18],
['性別'=>'男性','名前'=>'ジャック']
];
横断して比較する以外に、手早く効果的な方法はありますか?
私の現在のアイデアは、最初に同じルールに従って配列を並べ替えてから、json_encoding の後に md5 検証を使用することです。ただし、現状ではソートがうまく実装できていないようです。
何か良い方法はないでしょうか?
//純粋な連想配列にのみ適用可能
リーリーfunction deep_ksort(&$arr) {
}
リーリーdeep_ksort($a);
deep_ksort($b);
if(json_encode($a) == json_encode($b)){
}
//一般的なメソッド
リーリー//この関数は多次元配列を1次元配列に変換します
function multiToSingle($arr, $delimiter = '->',$key = ' ') {
}
リーリー//2つの配列が一致するかどうかを判定する
function subject($a,$b)
{
if(空($arr1) && 空($arr2)){
リーリー}その他{
リーリー};
}
これ http://bbs.csdn.net/topics/36... をご覧ください。役立つはずです。
同じルールで並べ替えた後、配列を文字列に変換し、2つの文字列が同じかどうかを比較するのは非常に簡単です。
リーリー