比較多維數組的關聯行
您有兩個多維數組,$pageids 和$parentpage,其中每行代表一個包含列的記錄“id”、“連結標籤”和“url”。您想要尋找 $pageids 中存在但不在 $parentpage 中的行,從而有效地建立一個包含缺少行的陣列 ($pageWithNoChildren)。
但是,直接在這些數組上使用 array_diff_assoc() 將無法按預期工作因為它比較主數組鍵,而不是嵌套行的內容。為了比較巢狀行,我們可以先使用 array_map() 和 serialize() 函數將它們轉換為一維數組。
$serializedPageids = array_map('serialize', $pageids); $serializedParentpage = array_map('serialize', $parentpage);
轉換後,我們可以使用 array_diff() 來比較這些一維陣列並獲得差異。
$serializedDifference = array_diff($serializedPageids, $serializedParentpage);
最後,我們可以使用 array_map() 和 unserialize() 函數將序列化差異轉換回多維數組。
$pageWithNoChildren = array_map('unserialize', $serializedDifference);
這個過程允許我們比較嵌套行的內容並提取$pageids 中存在但$parentpage 中不存在的行,從而得到預期的結果輸出:
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', ), )
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3