Задать вопрос

Как проверить массив на пустоту после array_diff?

Добрый день, новичок в PHP, столкнулся с проблемой, а именно имеется 2 массива, между которыми нахожу разницу

<?php

$o = "1|2|3";
$n = "";
$old = explode ("|", $o);
$new = explode ("|", $n);

$add = array_diff($new, $old);
$rem = array_diff($old, $new);

if (!empty($rem)) {
  print 'REM: ';
  print_r ($rem);
}

if (!empty($add)) {
  print 'ADD: ';
  print_r ($add);
}


Проблема в том, что на выходе получаю

REM: Array ([0] => 1[1] => 2[2] => 3 ) ADD: Array ([0] => )


Хотя подразумеваю, что $add должен быть пустой, и последнее условие не должно выполняться, по идее же новых записей нет, но почему то под нулевым индексом что то есть

В чём моя ошибка, подскажите пожалуйста
  • Вопрос задан
  • 201 просмотр
Подписаться 1 Простой Комментировать
Ответ пользователя Vitsliputsli К ответам на вопрос (3)
@Vitsliputsli
но почему то под нулевым индексом что то есть

Документация по explode:
Если delimiter не содержится в string, и используется отрицательный limit, то будет возвращен пустой массив (array), иначе будет возвращен массив, содержащий string.
Ответ написан