我有两个数组,想检查一下它的值是否有任何差异。我有两个解决方案(如下),但我认为应该有更好的方法我不知道。
数据
$old_data = array(
"name" => "Mister X",
"age" => 43
);
$new_data = array(
"name" => "Mister X",
"age" => 44
);
解决方案 A
如果 Integer 的格式类似于字符串,则不起作用: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.";
}