Выбор различных и общих значений в массивах — функция php

#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)