Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Anda Boleh Membandingkan Objek dalam Tatasusunan Berdasarkan Nilai Harta?

Bagaimanakah Anda Boleh Membandingkan Objek dalam Tatasusunan Berdasarkan Nilai Harta?

Linda Hamilton
Linda Hamiltonasal
2024-10-23 14:50:43714semak imbas

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"
        }
}

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!

Kenyataan:
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