我在这里问了一个类似的问题,https://stackoverflow.com/questions/18343559/compare-two-associative-arrays?noredirect= 1#comment26938095_18343559或在这里比较两个关联数组并显示差异但这已经有了很大的改进和正如许多大师建议我的那样,修改了问题以使其变得容易。请不要否定。如果我犯了任何错误,请告诉我,我会尽力解决这个问题,好吗?
这是问题......我使用的是php 5.3,这个数组是在从生成的PDO MySQL查询中传递了许多进程之后,并使用以下函数
function diff($new,$old)
{
$del=array_diff_assoc($old,$new);
$add=array_diff_assoc($new,$old);
return $diff=array("old"=>$del, "news"=>$add);
}
该数组如下所示...
$aa= Array
(
[old] => Array
(
[cod] =>
[gender] => m
[title] =>
)
[news] => Array
(
[cod] =>
[gender] => f
[title] => Mr
[wl] => 255
[heigh] =>
)
)
我试过下面的代码
$combine = array_merge_recursive($aa['old'], $aa['news']);
产生以下数组..(这正是我想要的结果)
Array
(
[gender] => Array
(
[gender] => m
[gender] => f
)
[title] => Array
(
[title] =>
[title] => Mr
)
[gender] => Array
(
[gender] => m
[gender] => f
)
[wl] => Array
(
[wl] =>
[wl] => 255
)
)
但似乎我包含了一些不需要的数据......
它应该做的是,如果 [old] 数组中存在任何键并且在 [news] 数组中具有相同键的值,则显示它,如果 [news] 数组中的任何键退出具有值显示它但是如果有任何[news] 数组中的键并且在 [old] 数组中没有对应的键并且没有值不要显示它。
任何想法,我会很感激......我只是堆叠一些如何......