[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: file() и in_array
lorddexon
Ситуация:
Есть файл 1.txt
В нем с каждой строки написано 5 чисел: 1 2 3 4 5
Я делаю так
$read = file("1.txt"); 
$key = array_search('5', $read);
echo $key;

Только вот $key ничего не выводит. Почему?
print_r($read) отображает весь массив отлично. Подскажите, в чем трабла?



Спустя 1 час, 40 минут, 6 секунд (28.03.2011 - 21:37) rogihor написал(а):
может функция
array_search
глючная, с бодуна наверное её писали )

Спустя 5 минут, 3 секунды (28.03.2011 - 21:43) alex12060 написал(а):
var_dump($read);


Что выводит?

Спустя 1 минута, 33 секунды (28.03.2011 - 21:44) Snus написал(а):
lorddexon
$read = file('1.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if(($key = array_search('5', $read)) !== FALSE)
echo $key;
else
echo 'Не могу найти!';

Спустя 10 секунд (28.03.2011 - 21:44) lorddexon написал(а):
var_dump выводит

array(6) { [0]=> string(2) "1 " [1]=> string(2) "2 " [2]=> string(2) "3 " [3]=> string(2) "4 " [4]=> string(2) "5 " [5]=> string(1) "6" }

----------------------------------------------------

Если trim в цикле все элементы массива, то это, мне кажется, неправильным.

----------------------------------------------------

FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES
Помогло, спасибо

Спустя 7 минут, 18 секунд (28.03.2011 - 21:52) alex12060 написал(а):

$read = file("1.txt");
$read = array_map(trim, $read);
$key = array_search('5', $read);
echo $key;


Не успел, но с флагами проще)

Спустя 3 часа, 5 минут, 40 секунд (29.03.2011 - 00:57) rogihor написал(а):
alex12060
$read = file("1.txt"); 
$read = array_map(trim, $read);
$key = array_search('5', $read);
echo $key;

//Notice: Use of undefined constant trim - assumed 'trim' in


Snus
$read = file('1.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if(($key = array_search('5', $read)) !== FALSE)
echo $key;
else
echo 'Не могу найти!';

//Не могу найти!


)) глючная функция

Спустя 8 часов, 42 минуты, 19 секунд (29.03.2011 - 09:40) alex12060 написал(а):
rogihor

Забыл кавычки поставить...

Спустя 1 день, 13 часов, 45 минут, 24 секунды (30.03.2011 - 23:25) lorddexon написал(а):
Это, че-то, в общем, не работает :D
2 дня назад работало, а теперь перестало.
 $read = file('1.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if(($key = array_search('имя1', $read)) !== FALSE)
{echo $key;}
else {echo 'Не могу найти!';}

Не ищет.
$read = file("1.txt"); 
$read = array_map(trim, $read);
$key = array_search('5', $read);
echo $key;

Выдает ошибку и не ищет.

Вот странная штука.

echo $key - ниче не показывает,
а echo $read[$key] - отлично отображает поисковое слово. В чем косяк-то?

Спустя 3 минуты, 24 секунды (30.03.2011 - 23:28) neadekvat написал(а):
$read = file("1.txt"); 
$read = array_map(trim, $read);
$key = array_search('5', $read);
echo gettype($key);

Что выводит?

Спустя 4 минуты, 33 секунды (30.03.2011 - 23:33) lorddexon написал(а):
boolean

Спустя 17 минут, 4 секунды (30.03.2011 - 23:50) alex12060 написал(а):
neadekvat

Он ищет уже другое. Поэтому он вернет False

lorddexon

Ты в 1 скрипте ищешь "имя1", а во 2 - 5


$search = 'имя1'
$read = array_map("trim", file("1.txt"));
$key = array_search($search, $read);
var_dump($key);


Что выводит?

Спустя 11 часов, 24 минуты, 51 секунда (31.03.2011 - 11:15) lorddexon написал(а):
alex12060
Да, про "имя1" и "5" я в курсе, просто на форуме не изменил))

А функция ваша выводит:

bool(false)

Спустя 2 часа, 25 минут, 12 секунд (31.03.2011 - 13:40) neadekvat написал(а):
Цитата (lorddexon @ 31.03.2011 - 11:15)
А функция ваша выводит:

bool(false)

Ок, вы глянули в документации, в каких случаях функция array_search возвращает false?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.