PHP比较两个嵌套数组和predict的区别 [英] php compare two nested array and predict the difference

查看:85
本文介绍了PHP比较两个嵌套数组和predict的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

怎么找到这两个阵列的区别

  // ARRAY 1$ A1 =阵列(
    A1=> 1,
    A3=>阵列(
        A31=> 31
    )
    A4=>阵列(
        A41=> 41
    )
    A5=>阵列(
        A51=> 51,
        A52=> 52
    )
);// ARRAY 2
$ A2 =阵列(
    A1=> 1,
    A2=> 2,
    A3=>阵列(
        A31=> 31,
        A32=>阵列(
            A321=> 321,
            A322=> 322
        )
    )
    A4=>阵列(
        A41=> 42
    )
    A5=>阵列(
        A51=> 51,
        A52=> 52
    )
);

和array_diff函数返回==> 阵列()

但是有一个很大的区别存在于上述两个数组变量。

例如:


  1. 在ARRAY1没有密钥A2但在ARRAY2 A2是可用的。

  2. ARRAY2 A3包含嵌套阵列(一层嵌套),但在阵列2包含两个嵌套子级。

所以我在这里要比较两个数组n级(即嵌套数组)


解决方案

  $结果=和array_diff(array_map('序列化',$ A2),array_map('序列化',$ A1) );
$结果= array_map('反序列化',$结果);呼应'< pre>';
的print_r($结果);

How find difference of the two array

// ARRAY 1

$a1 = array(
    "a1" => 1,
    "a3" => array(
        "a31" => 31
    ),
    "a4" => array(
        "a41" => 41
    ),
    "a5" => array(
        "a51" => 51,
        "a52" => 52
    )
);

// ARRAY 2
$a2 = array(
    "a1" => 1,
    "a2" => 2,
    "a3" => array(
        "a31" => 31,
        "a32" => array(
            "a321" => 321,
            "a322" => 322
        )
    ),
    "a4" => array(
        "a41" => 42
    ),
    "a5" => array(
        "a51" => 51,
        "a52" => 52
    )
);

array_diff function returns ==> Array ( )

But there is a lot of difference exist in the above two array variables.

example:

  1. in ARRAY1 There is no key a2 but in ARRAY2 a2 is available.
  2. ARRAY2 a3 contain nested array (one nested level ) but in ARRAY 2 contain two nested sub level.

So here i want to compare two array n-level (ie. nested array)

解决方案

$results = array_diff(array_map('serialize',$a2),array_map('serialize',$a1));
$results = array_map('unserialize',$results);

echo '<pre>';
print_r($results);

这篇关于PHP比较两个嵌套数组和predict的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆