我有两个阵列并想检查,如果它的值有任何差异。我有两个解决方案(下面),但我认为应该有更好的方法,我不知道。
数据
$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.";
}
答案 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 )