Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: in_array
Форумы портала PHP.SU » » Вопросы новичков » in_array

Страниц (1): [1]
 

1. nilbug - 06 Мая, 2013 - 12:19:50 - перейти к сообщению
Если использовать:

PHP:
скопировать код в буфер обмена
  1. <?
  2. $search_array = file("bd.txt");
  3. $find = 165;
  4. if (in_array($find, $search_array)) echo "Найдено"; else echo "Не найдено";
  5. ?>


то, если число 165 присутствует в файле bd.txt он его находит.

Если использовать

PHP:
скопировать код в буфер обмена
  1. <?
  2. $search_array = file("bd.txt");
  3. if (in_array($_POST['find'], $search_array)) echo "Найдено"; else echo "Не найдено";
  4. ?>


где $_POST['find'] - берется значение из формы, то в этом случае какое бы значение не было, все равно не находит. В чем может быть причина?
2. Skycrafter - 06 Мая, 2013 - 12:22:37 - перейти к сообщению
попробуй)
PHP:
скопировать код в буфер обмена
  1. if (in_array($_POST['find']*1, $search_array)) echo "Найдено"; else echo "Не найдено";

и проверь приходит ли что нибудь в $_POST['find']
3. nilbug - 06 Мая, 2013 - 12:27:36 - перейти к сообщению
Skycrafter пишет:
попробуй)


работает! а почему так важна эта *1?
4. avtor.fox - 06 Мая, 2013 - 12:29:23 - перейти к сообщению
Skycrafter, странное приведение к числовому типу)

nilbug
5. Skycrafter - 06 Мая, 2013 - 12:32:28 - перейти к сообщению
nilbug пишет:
работает! а почему так важна эта *1?

http://www.php.su/learnphp/datatypes/
в $_POST[' '] данные типа string, а в твоем массиве данные типа integer
просекаешь разницу?
6. DelphinPRO - 06 Мая, 2013 - 13:23:24 - перейти к сообщению
Skycrafter пишет:
$_POST['find']*1

чему вы учите молодежь...

нормальное приведение типов:

т.е.
PHP:
скопировать код в буфер обмена
  1. in_array((int)$_POST['find'], $search_array)

 

Powered by ExBB FM 1.0 RC1