Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mencari baris yang hadir dalam satu tatasusunan berbilang dimensi tetapi tidak dalam satu lagi?
Membandingkan Baris Bersekutu Tatasusunan Berbilang Dimensi
Anda mempunyai dua tatasusunan berbilang dimensi, $pageids dan $parentpage, di mana setiap baris mewakili rekod dengan lajur 'id', 'linklabel' dan 'url'. Anda ingin mencari baris yang terdapat dalam $pageids tetapi tidak dalam $parentpage, dengan berkesan mencipta tatasusunan ($pageWithNoChildren) dengan baris yang hilang.
Walau bagaimanapun, menggunakan array_diff_assoc() secara langsung pada tatasusunan ini tidak akan berfungsi seperti yang diharapkan kerana ia membandingkan kunci tatasusunan utama, bukan kandungan baris bersarang. Untuk membandingkan baris bersarang, mula-mula kita boleh menukarnya kepada tatasusunan satu dimensi menggunakan array_map() dan fungsi serialize().
$serializedPageids = array_map('serialize', $pageids); $serializedParentpage = array_map('serialize', $parentpage);
Selepas menukarnya, kita boleh menggunakan array_diff() untuk membandingkan yang ini tatasusunan -dimensi dan dapatkan perbezaannya.
$serializedDifference = array_diff($serializedPageids, $serializedParentpage);
Akhir sekali, kita boleh menukar semula perbezaan bersiri kepada tatasusunan berbilang dimensi menggunakan array_map() dan fungsi unserialize().
$pageWithNoChildren = array_map('unserialize', $serializedDifference);
Ini proses membolehkan kami membandingkan kandungan baris bersarang dan mengekstrak baris yang terdapat dalam $pageids tetapi tidak dalam $parentpage, menghasilkan output yang dijangkakan:
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 mencari baris yang hadir dalam satu tatasusunan berbilang dimensi tetapi tidak dalam satu lagi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!