Contohnya adalah seperti berikut:
Operasi sebenar ialah tatasusunan tiga dimensi dan jumlah data agak besar.
$a = [
['name'=>'jack', 'jantina'=>'lelaki'],
['umur'=>18,'negara'=>'China']
];
$b = [
['country'=>'China','age'=>18],
['jantina'=>'lelaki','name'=>'jack']
];
Selain melintasi dan membandingkan, adakah terdapat cara yang cepat dan berkesan?
Idea semasa saya ialah untuk mengisih tatasusunan mengikut peraturan yang sama dahulu, dan kemudian menggunakan pengesahan md5 selepas json_encoding. Namun, nampaknya pengasingan tidak dapat dilaksanakan dengan baik pada masa ini.
Saya tertanya-tanya sama ada anda mempunyai sebarang kaedah yang baik?
//Hanya terpakai pada tatasusunan bersekutu semata-mata
fungsi deep_ksort(&$arr) {
}
deep_ksort($a);
deep_ksort($b);
if(json_encode($a) == json_encode($b)){
}
//Kaedah umum
//Fungsi ini menukar tatasusunan berbilang dimensi kepada tatasusunan satu dimensi
fungsi multiToSingle($arr, $delimiter = '->',$key = ' ') {
}
//Hakim sama ada dua tatasusunan adalah kongruen
fungsi hakim($a,$b)
{
jika(kosong($arr1) && kosong($arr2)){
}lain{
};
}
Anda boleh lihat http://bbs.csdn.net/topics/36 ini..., ia sepatutnya berguna kepada anda!
Ia sangat mudah selepas mengisih mengikut peraturan yang sama, tukar tatasusunan kepada rentetan dan bandingkan sama ada dua rentetan itu sama.