如何在PHP中找到两个数组之间的差异?

时间:2015-02-26 16:22:34

标签: php arrays zabbix

这是数组1:

Array ( [ABC01] => 10.123.456.78
        [ABC02] => 10.123.456.79
        [ABC03] => 10.123.456.80
        [ZYX99] => 10.123.456.81
      )

这是数组2:

Array ( [0] => ABC01
        [1] => ABC02
        [2] => ABC03
      )

我正在尝试找到这两个数组之间的区别并返回以下内容(如您所见,主机名,然后是数组2中找不到的项的相应IP地址):

Array ( [ZYX99] => 10.123.456.81)

我一直在研究不同的PHP数组函数,并且被它们的数量所淹没:http://www.w3schools.com/php/php_ref_array.asp

1 个答案:

答案 0 :(得分:6)

这应该适合你:

(这里我只使用array_diff_key()来获取键的差异。第二个数组我用array_flip()翻转,以便将值更改为键)

<?php

    $arr1 = array(
            "ABC01" => "10.123.456.78",
            "ABC02" => "10.123.456.79",
            "ABC03" => "10.123.456.80",
            "ZYX99" => "10.123.456.81"
    );

    $arr2 = array("ABC01", "ABC02", "ABC03");

    $result = array_diff_key ($arr1, array_flip($arr2));
    print_r($result);

?>

输出:

Array ( [ZYX99] => 10.123.456.81 )