Не работает in_array в php. Что делаю не так?
Есть код, но почему-то не работает функция in_array. Мне кажется что ничего не упустил (значит что-то точно упустил), но не могу понять что именно. Вот сам код:
$search = $_POST[search];
$filename = "users.txt";
$file = fopen($filename, "r");
$pre_list = fread($file, filesize($filename));
$list = explode("||" ,$pre_list);
foreach($list as $sid=>$value);
if (in_array("$search",$value) == 1)
echo "Найдено совпадение с $search";
else echo "Совпадений с $search не найдено";
fclose($file);
Ответы (2 шт):
Автор решения: Доярочник
→ Ссылка
Код не работает потому, что после foreach запятая)
foreach($list as $sid=>$value);
А должны быть фигурные скобки
foreach($list as $sid=>$value)
{
if (in_array("$search",$value) == 1)
echo "Найдено совпадение с $search";
else echo "Совпадений с $search не найдено";
}
Автор решения: Андрей Левченко
→ Ссылка
Нашёл решение! Убрал foreach, в нём не было необходимости вообще! Проблема была в том, что в файл данные записывались с пробелом после "||", а искались без пробела. Вот работающий код:
$filename = "users.txt";
$file = fopen($filename, "r");
$pre_list = fread($file, filesize($filename));
$list = explode("||" ,$pre_list);
//foreach($list as $sid=>$value);
if (in_array($search,$list) == true)
{echo "Найдено совпадение с $search<br>";}
else {echo "Совпадений с $search не найдено<br>";}
fclose($file);