Как найти разницу между двумя массивами в PHP?

Вот массив 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
)

Я пытаюсь найти разницу между этими двумя массивами и вернуть следующее (как видите, имя хоста, а затем соответствующий IP-адрес элемента, не найденного в массиве 2):

Array ( [ZYX99] => 10.123.456.81)

Я просматривал различные функции PHP-массивов и поражен их количеством: http://www.w3schools.com/php/php_ref_array.asp

2

Решение

Это должно работать для вас:

(Здесь я только что использовал 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 )
6

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]