Bandingkan Objek dalam Tatasusunan Berdasarkan Nilai Harta
Menentukan perbezaan antara dua tatasusunan objek boleh menjadi satu cabaran. Walaupun fungsi seperti array_diff dan array_udiff wujud untuk tatasusunan standard, objek memerlukan pendekatan tersuai.
Untuk membandingkan objek berdasarkan sifat tertentu, ikut langkah berikut:
Sebagai contoh, pertimbangkan tatasusunan objek berikut:
array(4) { [0]=> object(stdClass)#32 (9) { ["id"]=> string(3) "205" ["day_id"]=> string(2) "12" } }
Untuk mencari perbezaan antara objek berdasarkan pada sifat id, tentukan fungsi perbandingan seperti ini:
function compare_objects($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; }
Kemudian, gunakan array_udiff untuk membandingkan tatasusunan:
$diff = array_udiff($first_array, $second_array, 'compare_objects');
Sebagai alternatif, jika menggunakan PHP >= 5.3, anda boleh menggunakan fungsi tanpa nama:
$diff = array_udiff($first_array, $second_array, function ($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } );
Pendekatan ini membolehkan anda membandingkan objek dalam tatasusunan dengan cekap berdasarkan nilai sifat yang anda inginkan.
Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Membandingkan Objek dalam Tatasusunan Berdasarkan Nilai Harta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!