У меня есть эта форма ввода:Почему array_diff действует по-разному, когда массив из входной формы?
<form method="POST" action="unique_value_processor.php">
<textarea cols="50" rows="8" name="usedurls"></textarea>
<textarea cols="50" rows="8" name="freshurls"></textarea>
<textarea cols="50" rows="8" name="filteredurls"></textarea>
<input type="SUBMIT" value="SUBMIT">
Файлы, обрабатывает форма
$old_urls_exploded = explode("\n", $_POST['usedurls']);
$new_urls_exploded = explode("\n", $_POST['freshurls']);
$arraydiff = array_diff($new_urls_exploded, $old_urls_exploded);
print_r($arraydiff);
Так что, когда я введите следующее в форму:
поле 1 (old_urls_exploded):
синий, желтый
коробка 2 (new_urls_exploded):
желтый, синий, банан
тогда он должен вернуть только:
банан
Но array_diff возвращается :
желтый, банан
Затем, когда вы вручную ввести массив как:
$old_urls_exploded = array('blue','yellow');
$new_urls_exploded = array('yellow','blue','banana');
тогда array_diff только возвращает:
банан
как это должен ...
Почему форма влияет на поведение array_diff? Я делаю что-то неправильно?
это сделать ли трюк: '$ arraydiff = array_diff (array_map ("подрезать", $ new_urls_exploded), array_map ("подрезать", $ old_urls_exploded))'? – Rizier123
В вашем втором примере, как он возвращает банан, когда банан не находится ни в одном массиве? ;) Rizier123 - обрезка входов. Это означает, что он думает, что у вас могут быть пробелы в конце каждой строки в ваших текстовых сообщениях, что делает их сравнительно разными. – crush
Rizier123 Да, это решило, спасибо вам большое! –