array_diff не выводит то, что должен в PHP - PullRequest
0 голосов
/ 29 октября 2011

У меня проблема с array_diff.

У меня есть текстовое поле с легальными адресами электронной почты.Я получаю это из базы данных MySQL.Когда я вставляю их в текстовую область, я также сохраняю их в массиве.

Когда форма отправляется, у меня есть функция, которая берет содержимое текстовой области и сравнивает его с первым массивом.Таким образом, я могу видеть, добавил ли пользователь другой адрес электронной почты.

Моя проблема в том, что array_diff выводит весь массив, а не элементы, которые отличаются.

Я пыталсявыведите массивы перед их сравнением, и они оба будут иметь правильные значения.Когда я пытался использовать фиктивные массивы с жестко закодированными значениями, вывод был правильным.

Что может вызвать это?

1 Ответ

0 голосов
/ 29 октября 2011

Это зависит от того, как вы добавляете текстовую область, и как вы получаете их обратно.

Предполагая, что у вас есть адреса электронной почты в отдельных строках в базе данных, вы можете комбинировать их с \n в текстовой области, затем взрывающаяся на \n ... но если вы работаете в Windows, то строки разделяются \r\n, так что вы бы сравнили email@example.com с email@example.com\r, что отличается.Это приведет к тому, что весь массив будет отображен без видимой причины.

...