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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: не могу правильно прочитать массив

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
virginkoks
Отправлено: 01 Июня, 2009 - 18:05:42
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




есть файл test.txt
в нем 3 строчки - test1, test2, и test3.

суть проблемы:

$t=file("test.txt") ;
if (in_array("test1",$t)) echo "fuck" ;

не работает такой фак, но! если искать не test1 а test3 то все прекрасно работает.
как быть?!

спасибо
 
 Top
Stierus Супермодератор
Отправлено: 01 Июня, 2009 - 18:14:21
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




0 считается как false Улыбка))

замени на
 
My status
 Top
virginkoks
Отправлено: 01 Июня, 2009 - 18:18:09
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




но дело не в этом!

ибо почему же тогда поиск test3 удачен?
а по вашему test2 должен дать единицу?
(Добавление)
для чистоты эксперимента я заменил in_array на $x=array_search("test1",$t); echo $x;

нету икса

при поиске test3 правильно показывает индекс 2

(Отредактировано автором: 01 Июня, 2009 - 18:19:11)

 
 Top
Гость
Отправлено: 01 Июня, 2009 - 18:25:06
Post Id


УДАЛЁН










virginkoks Так в этомто и дело - эти функции ищут номер индекса элемента в массиве а он равен нулю (Самый первый индекс это ноль) Поэтому надо использовать === (Равеонство с проверкой типа) чтобы 0 не считался как false
 
 Top
virginkoks
Отправлено: 01 Июня, 2009 - 18:27:13
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




JustUserR пишет:
virginkoks Так в этомто и дело - эти функции ищут номер индекса элемента в массиве а он равен нулю (Самый первый индекс это ноль) Поэтому надо использовать === (Равеонство с проверкой типа) чтобы 0 не считался как false



in_array не ищет индекс
 
 Top
Stierus Супермодератор
Отправлено: 01 Июня, 2009 - 18:35:56
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Сори, это меня под вечер клинить начинает. Возможно, дело в переносе строк (test3 стоит последним, у него нет переноса строк)
PHP:
скопировать код в буфер обмена
  1. $t=file("test.txt") ;
  2. echo '<pre>';
  3. echo '</pre>';
Что выдает, есть переносы ?
 
My status
 Top
virginkoks
Отправлено: 01 Июня, 2009 - 18:41:05
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




array (
0 => 'test1
',
1 => 'test2
',
2 => 'test3
',
3 => 'test4',
)

да переносы есть

чувствую разгадка близка..))

(Отредактировано автором: 01 Июня, 2009 - 18:41:40)

 
 Top
Stierus Супермодератор
Отправлено: 01 Июня, 2009 - 19:03:35
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




разгадка не близка, а у тебя на руках. У тебя 2 выбора: читать файл вручную построчно и заносить в массив сразу без переносов (предпочтительный вариант), либо после file(...) применять Trim (rtrim и тд) к каждому элементу массива
 
My status
 Top
virginkoks
Отправлено: 01 Июня, 2009 - 19:06:29
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




огромное спасибо
отпустило
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB