Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membandingkan Baris Bersekutu Tatasusunan 2 Dimensi dalam PHP?

Bagaimana untuk Membandingkan Baris Bersekutu Tatasusunan 2 Dimensi dalam PHP?

Barbara Streisand
Lepaskan: 2024-11-09 13:54:02
asal
418 orang telah melayarinya

How to Compare Associative Rows of 2-Dimensional Arrays in PHP?

Bandingkan Baris Bersekutu Tatasusunan 2 Dimensi: Panduan Komprehensif

Tatasusunan berbilang dimensi ialah cara yang berkuasa untuk mengatur data dalam PHP, tetapi membandingkannya boleh menjadi satu cabaran. Soalan ini meneroka cara untuk membandingkan baris bersekutu dua tatasusunan 2 dimensi dengan berkesan menggunakan fungsi array_diff_assoc().

Cabaran:

Objektifnya adalah untuk mengenal pasti dan mengekstrak baris daripada $pageids yang tidak terdapat dalam $parentpage. Fungsi array_diff_assoc() direka untuk membandingkan tatasusunan bersekutu, tetapi ia beroperasi pada tahap pertama tatasusunan, mengabaikan baris bersarang.

Masalahnya:

The kod yang disediakan:

$pageWithNoChildren = array_diff_assoc($pageids,$parentpage);
Salin selepas log masuk

mengembalikan hasil yang salah kerana ia mengabaikan yang bersarang baris dan hanya mempertimbangkan kekunci tahap pertama.

Penyelesaian:

Penyelesaian yang dicadangkan melibatkan penukaran setiap sub-tatasusunan kepada perwakilan rentetan menggunakan serialize(). Ini mengubah tatasusunan berbilang dimensi kepada tatasusunan satu dimensi:

$diff = array_diff(array_map('serialize', $pageids), array_map('serialize', $parentpage));
Salin selepas log masuk

Seterusnya, perbezaan ditukar kembali kepada sub-tatasusunan menggunakan unserialize():

$pageWithNoChildren = array_map('unserialize', $diff);
Salin selepas log masuk

Kaedah ini dengan berkesan membandingkan kandungan baris bersarang, menghasilkan output yang dijangkakan berikut:

array (
  0 => 
  array (
    'id' => 1,
    'linklabel' => 'Home',
    'url' => 'home',
  ),
  3 => 
  array (
    'id' => 6,
    'linklabel' => 'Logo Design',
    'url' => 'logodesign',
  ),
  4 => 
  array (
    'id' => 15,
    'linklabel' => 'Content Writing',
    'url' => 'contentwriting',
  ),
)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Membandingkan Baris Bersekutu Tatasusunan 2 Dimensi dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China 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