Я хочу понять, почему в первом случае, если Имя песни и Ссылка.. заменены str_replace на пустое значение, то при последующей попытке удаления ключей из массива они оттуда Не Удаляются. А во втором случае, если стереть Имя песни и Ссылка.. руками, то потом ключи спокойно удаляются, хотя оба массива одинаковы, т.е и в первом случае ключи тоже должны удаляться..
Зависит от фазы Луны. Ну как Вы не можете понять, что если к одним и тем же данным применить один и тот же алгоритм, то на выходе должны быть одинаковые данные (если, конечно, в алгоритме не предусмотрена случайная генерация). Значит у Вас все таки исходные данные не одинаковые.
Блин, все-таки проблема с удаление пустых ключей не разрешилась. Вот код: Код (Text): <form action="#" method="post"> <input type="text" name="var[]" /> <input type="text" name="var[]" /> <input type="text" name="var[]" /> <input type="text" name="var[]" /> <input type="submit" name="ok"> </form> <? while($key = array_search('', $_POST['var'])) { unset($_POST['var'][$key]); } print_r($_POST['var']); ?> Если все поля, кроме первого, оставить пустыми, выводиться Код (Text): Array ( [0] => 1 ) Если ввести значение только в два средних, выводиться Код (Text): Array ( [0] => [1] => 1 [2] => 2 [3] => ) :cry:
PHP: while( false !== ( $key = array_search( '', $_POST['var'] ) ) ) А вообще, чем не нравится код, который предложил Горбунов Олег несколькими постами выше?
Очень просто. Если первый элемент массива пустой, то функция вернет 0 (ведь индекс первого элемента массива - 0). Ну а раз так, то и while() не выполнится. false !== ( expression ) явно указывает, что надо проверить что функция вернула именно false, а не 0