#php #arrays
#php #массивы
Вопрос:
Каков наилучший способ сделать это. У вас есть 2 массива для ввода, скажем:
$current = array('strawberry', 'apple', 'banana', 'peach');
$new = array('apple', 'blackberry', 'mango', 'banana');
Теперь напишите класс / функцию, которая возвращает два массива, например:
$add = array('blackberry', 'mango');
$del = array('strawberry', 'peach');
Каков наилучший способ / наиболее эффективный способ написать функцию / класс, который выполняет эту задачу?
Я понял что-то вроде этого:
function replaceTags($new, $current) {
$tmp = array_intersect($new, $current);
$add = array_diff($new, $tmp);
$del = array_diff($current, $tmp);
return array($add, $del);
}
Мне интересно, лучше ли для этой задачи подходят встроенные функции PHP?
Любое предложение было бы оценено;)
Комментарии:
1. Вы распределяете задачу людям в stackoverflow? (т. Е.) ничего не пытаясь?
Ответ №1:
array_diff($array1, $array2) возвращает значения в $array1, которых нет в $array2.
Таким образом, вы могли бы получить значения, которые были добавлены с помощью:
$add = array_diff($new, $current)
и значения, которые были удалены с помощью:
$del = array_diff($current, $new)