數組的遞歸比較
比較兩個數組時,執行遞歸diff 來探索嵌套結構並識別差異通常很有用在每個級別。這對於測試新演算法的輸出或確保資料保持一致特別有價值。
現有函數
幸運的是,有一個現成的函數,稱為 arrayRecursiveDiff () 提供遞歸數組比較。它在 PHP array_diff() 函數的註解中實現,可以如下使用:
function arrayRecursiveDiff($aArray1, $aArray2) { $aReturn = array(); foreach ($aArray1 as $mKey => $mValue) { if (array_key_exists($mKey, $aArray2)) { if (is_array($mValue)) { $aRecursiveDiff = arrayRecursiveDiff($mValue, $aArray2[$mKey]); if (count($aRecursiveDiff)) { $aReturn[$mKey] = $aRecursiveDiff; } } else { if ($mValue != $aArray2[$mKey]) { $aReturn[$mKey] = $mValue; } } } else { $aReturn[$mKey] = $mValue; } } return $aReturn; }
該函數接受兩個數組作為參數,並傳回一個包含它們之間差異的陣列。匹配的元素以綠色表示,不匹配的部分以紅色突出顯示。
用法
要使用 arrayRecursiveDiff() 函數進行視覺化,可以透過將結果傳送到 dBug 等工具或建立您自己的自訂報告介面。
替代方案方法
如果您喜歡不同的方法,您可以建立自己的遞歸 diff 函數或探索提供陣列比較功能的其他 PHP 函式庫。然而, arrayRecursiveDiff() 函數提供了一個簡單有效的方法來比較深度嵌套的陣列。
以上是如何找到 PHP 中深度嵌套數組之間的差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!