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
Barbara Streisandasal
2024-11-09 13:54:02402semak imbas

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);

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));

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

$pageWithNoChildren = array_map('unserialize', $diff);

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',
  ),
)

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