@vladislav997

Как сравнить 2 массива и вырезать одинаковые элементы?

Есть 2 массива:
Переменная: $arr
Array (
[0] => Array ( [bot_response] => Фраза №1 )
[1] => Array ( [bot_response] => Фраза №2 )
[2] => Array ( [bot_response] => Фраза №3 )
[3] => Array ( [bot_response] => Фраза №4 )
[4] => Array ( [bot_response] => Фраза №5 )
[5] => Array ( [bot_response] => Фраза №6 ) )


И переменная: $findChats
Array (
[0] => Array ( [bot_response] => Фраза №1 )
[1] => Array ( [bot_response] => Фраза №2 )
[2] => Array ( [bot_response] => Фраза №5 ) )


Суть в чём, нужно сравнить эти 2 массива и вырезать из $arr объекты, которые идентичны в массиве $findChats (т.е. оставить фразы №3, 4, 6).

Пробовал функцию вычисления расхождения массивов array_diff(), но это не помогло. Подскажите как можно решить
  • Вопрос задан
  • 96 просмотров
Решения вопроса 2
kimono
@kimono
Web developer
Вам поможет замечательная функция array_diff :
$result = array_diff($arr, $findChats);

Что именно вам не помогло?

Тогда попробуйте это:
$result = array_filter($arr, function ($value) use ($findChats) {
    return !in_array($value, $findChats);
});
Ответ написан
revenger
@revenger
49.5
Если в элементе массива только один вложенный массив
[0] => Array ( [bot_response] => Фраза №1 )
то проще преобразовать сначала в более простой массив
[0] => Фраза №1
сложить два массива
Array1 + Array2
и сделать
array_unique()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы