簡體   English   中英

PHP比較兩個數組?

[英]PHP Compare Two Arrays?

我正在嘗試比較數據庫中的兩個條目,因此當用戶進行更改時,我可以獲取兩個數據庫條目並進行比較以查看用戶所做的更改,因此我將獲得類似於以下的輸出:

用戶將$fieldName$originalValue更改$fieldName $newValue

我研究了這個問題,並遇到了array_diff但是它沒有提供我需要的輸出格式。

在繼續編寫執行此操作的函數並將其返回為一個不錯的$mtextFormatDifferenceString ,誰能指出我已經執行此操作的解決方案的方向?

我不想重新發明輪子。

由於您需要“從$ originalValue到$ newValue”,因此我將繼續選擇兩行,將它們放入assoc數組中,然后遍歷各個鍵,保存不相等的鍵。 有一些像:

$fields = array_keys($row1);
$changedFields = array();

foreach ($fields as $field) {
    if ($row1[$field] != $row2[$field]) {
        $changedFields[] = $field;
    }
}

我意識到您在詢問是否存在預制車輪,但我認為解決方案非常簡單。

?>

盡管您沒有定義所需的格式,但是著名的diff算法可能適合您。 Google for PHP diff algorithm ,您肯定會找到一些建議。

您可以使用array_diff_assoc獲取更改后的值($ newValue),然后僅使用鍵($ fieldName)查找原始值$ originalValue並以所需的任何格式輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM