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
379 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!

sumber:php.cn
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