Bagaimanakah Anda Boleh Membandingkan Objek dalam Tatasusunan Berdasarkan Nilai Harta?

Linda Hamilton
Lepaskan: 2024-10-23 14:50:43
asal
713 orang telah melayarinya

How Can You Compare Objects in Arrays Based on Property Values?

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:

  1. Tentukan a Fungsi Perbandingan: Cipta fungsi yang mengambil dua objek sebagai parameter dan mengembalikan perbezaan antara nilai sifat yang diingini.
  2. Gunakan array_udiff dengan Fungsi Perbandingan: Lulus tatasusunan objek dan fungsi perbandingan kepada array_udiff. Fungsi ini akan menggunakan fungsi perbandingan untuk menentukan perbezaan antara objek.

Sebagai contoh, pertimbangkan tatasusunan objek berikut:

array(4) {
    [0]=>
        object(stdClass)#32 (9) {
            ["id"]=>
            string(3) "205"
            ["day_id"]=>
            string(2) "12"
        }
}
Salin selepas log masuk

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;
}
Salin selepas log masuk

Kemudian, gunakan array_udiff untuk membandingkan tatasusunan:

$diff = array_udiff($first_array, $second_array, 'compare_objects');
Salin selepas log masuk

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;
  }
);
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!