PHP:如何比较2个数组?

时间:2013-04-30 21:34:39

标签: php arrays compare conditional-statements

我有两个阵列并想检查,如果它的值有任何差异。我有两个解决方案(下面),但我认为应该有更好的方法,我不知道。

数据

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

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

解决方案A

如果整数的格式如String,则不起作用:44与“44”。对我来说编码数组似乎也很脏。

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

解决方案B

构建两个数组的字符串值并进行比较。

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.";
}

1 个答案:

答案 0 :(得分:5)

使用http://us3.php.net/array_diff

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

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

print_r(array_diff($old_data, $new_data));
?>

这将输出:

Array ( [age] => 43 )