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

l33*_*eak 2 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
      )
Run Code Online (Sandbox Code Playgroud)

这是数组2:

Array ( [0] => ABC01
        [1] => ABC02
        [2] => ABC03
      )
Run Code Online (Sandbox Code Playgroud)

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

Array ( [ZYX99] => 10.123.456.81)
Run Code Online (Sandbox Code Playgroud)

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

Riz*_*123 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);

?>
Run Code Online (Sandbox Code Playgroud)

输出:

Array ( [ZYX99] => 10.123.456.81 )
Run Code Online (Sandbox Code Playgroud)