Как найти, какие элементы удаляются из последнего списка массивов состояний и какие элементы добавляются в новый?
Мои массивы:
$arrayOld = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"];
$arrayNew = ["Z", "B", "C", "D", "E", "F", "G", "H", "I", "J", "Y"];
Объяснение:
У меня есть массив под названием $arrayOld
Пользователь вносит некоторые изменения в список и публикует новый массив на сервере, и я хочу знать, какие элементы удалены из первого массива, а какие новые!
Спасибо
array_diff будет решением,
Получить добавляет,
$new_elements = array_diff($arrayNew, $arrayOld);
print_r($new_elements); // first parameter should be new array
and second one should be old
Получить удаления,
$old_elements = array_diff($arrayOld, $arrayNew);
print_r($old_elements); // Here first parameter should be old array
and second one should be new
Вы можете просто найти те, которые используют array_diff:
$arrayOld = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"];
$arrayNew = ["Z", "B", "C", "D", "E", "F", "G", "H", "I", "J", "Y"];
$removes = array_diff($arrOld, $arrNew);
print_r($removes); // A , K
$adds = array_diff($arrNew,$arrOld);
print_r($adds); // Z , Y
Az php.net документы:
array_diff — вычисляет разницу массивов
Сравнивает массив1 с одним или несколькими другими массивами и возвращает значения в массиве1, которых нет ни в одном из других массивов.
используйте функцию сравнения, она покажет все разные с индексом элементов изменений
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
$a2=array("e"=>"red","f"=>"black","g"=>"purple");
$a3=array("a"=>"red","b"=>"black","h"=>"yellow");$result=array_diff($a1,$a2,$a3);
print_r($result);
результат будет:
Array ([b] => зеленый [c] => синий);