PDA

Просмотр полной версии : поиск в массиве


Student :)
29.07.2009, 22:39
Привет всем!!!

есть файл file.txt

5765765765
6576575767
6665888765

и файл in.php


$str=$_GET['s'];
$fl = "file.txt";

$file = file($fl); //загоняем файл в массив $file

$count = count($file); //подсчитываем количество строк

for($i=0;$i<$count;$i++) //создаём цикл, кол-во оборотов равно количиству строк в файле
{
if ($file[$i]=='6665888765'){
echo 'ok';
exit;
}


}


почему не отрабатывает if когда доходит до
6665888765 и не выводиться на экран ok

Gifts
29.07.2009, 22:42
Student :) Незачем создавать сто топиков, для подобных вопросов есть специальная тема: https://forum.antichat.ru/thread40896.html

Попробуйте if (trim($file[$i])=='6665888765')

Student :)
29.07.2009, 22:47
Спасибо! забыл что там идёт перевод строки :)

а какбы потом удалить эту строку из файла ? :)

mailbrush
29.07.2009, 22:59
1. Используй цикл foreach, ф-цию array_map.
2. Чтобы удалить строку из файла, надо сначала удалить требуемый элемент массива, после чего тем же циклом foreach записать массив в файл.

Student :)
29.07.2009, 23:34
<?
$out=Array();
$str=$_GET['s'];
$fl = "file.txt"; // файл из которого удаляем строку

$file = file($fl); //загоняем файл в массив $file

$count = count($file); //подсчитываем количество строк

for($i=0;$i<$count;$i++) //создаём цикл, кол-во оборотов равно количиству строк в файле
{
if (trim($file[$i])=='число'){
unset($file[$i]);

//exit;
}


}
print_r($file);

?>