0

2 つの配列があり、その値に違いがあるかどうかを確認したいと思います。私は2つの解決策(以下)を持っていますが、私が知らないより良い方法があるはずだと思います.

データ

$old_data = array(
    "name" => "Mister X",
    "age" => 43
);

$new_data = array(
    "name" => "Mister X",
    "age" => 44
);

ソリューション A

整数が文字列のようにフォーマットされている場合、機能しません: 44 対 "44"。また、配列のエンコードは私にとって汚いようです。

if (json_encode($old_data) != json_encode($new_data)) {
    echo "there's a difference.";
}

ソリューション B

配列の値の 2 つの文字列を作成し、それらを比較します。

function array_values_to_string($array) {
    $str = "";
    foreach ($array as $key => $value) {
        $str .= $value;
    }
    return $str;
}

if (array_values_to_string($array_old) != array_values_to_string($array_new)) {
    echo "there's a difference.";
}
4

1 に答える 1