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 :: как в For вставить isset ??

 PHP.SU

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


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

> Описание: как в For вставить isset ??
vasa666
Отправлено: 25 Октября, 2012 - 15:04:07
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2012  


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




есть вот такой код:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $amm = file("foto/db_baze.dat");
  3.   for($a = 0; $a < count($amm); $a++)
  4.  {
  5. $str = $amm[$a];
  6. $arr = explode(" || ",$str);
  7. $odin[$a]=trim($arr[0]);
  8. $dva[$a]=trim($arr[1]);
  9. $tri[$a]=trim($arr[2]);
  10. $chetire[$a]=trim($arr[3]);
  11.  }
  12.  


и файл "db_baze.dat" с наполнением:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. 11 || мама || папа || бабушка
  3. 22 || лиза
  4. 33 || таня
  5. 44 || люба


В первой строчки 4 значения
а в остальных только по два, если запускать код в таком виде, вылезают ошибки при назначении переменных (для tri и chetire) 3-о и 4-о элемента каждой строки(кроме первой строчки)...

пример ошибок:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. PHP Notice:  Undefined offset: 3 in /home/huid1247/САЙТ.ru/index.php on line 37
  3. PHP Notice:  Undefined offset: 2 in /home/huid1247/САЙТ.ru/index.php on line 36
  4. PHP Notice:  Undefined offset: 3 in /home/huid1247/САЙТ.ru/index.php on line 37
  5. PHP Notice:  Undefined offset: 2 in /home/huid1247/САЙТ.ru/index.php on line 36
  6. PHP Notice:  Undefined offset: 3 in /home/huid1247/САЙТ.ru/index.php on line 37
  7. PHP Notice:  Undefined offset: 2 in /home/huid1247/САЙТ.ru/index.php on line 36
  8. PHP Notice:  Undefined offset: 3 in /home/huid1247/САЙТ.ru/index.php on line 37
  9.  


пытался решить вот так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $amm = file("foto/db_baze.dat");
  3.   for($a = 0; $a < count($amm); $a++)
  4.  {
  5. $str = $amm[$a];
  6. $arr = explode(" || ",$str);
  7. $odin[$a]=trim($arr[0]);
  8. $dva[$a]=trim($arr[1]);
  9. if (isset($arr[2])) {$tri[$a]=trim($arr[2])}
  10. if (isset($arr[3])) {$chetire[$a]=trim($arr[3])}
  11.  }
  12.  


Но чего то оно так не работает((

(Отредактировано автором: 25 Октября, 2012 - 15:05:43)

 
 Top
Okula
Отправлено: 25 Октября, 2012 - 15:25:30
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


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




vasa666, почему не работает, какой результат выдаёт?
 
 Top
Zuldek
Отправлено: 25 Октября, 2012 - 15:28:51
Post Id


Постоянный участник


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


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




если содержание файла такое какое указали, то должно работать.

(Отредактировано автором: 25 Октября, 2012 - 15:29:17)

 
 Top
vasa666
Отправлено: 25 Октября, 2012 - 15:40:00
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2012  


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




CODE (htmlphp):
скопировать код в буфер обмена
  1. PHP Parse error:  syntax error, unexpected '}' in /home/huid1247/САЙТ/test1/index.php on line 11


ругается начиная с первого "IF"
 
 Top
Okula
Отправлено: 25 Октября, 2012 - 15:47:35
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


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




vasa666, потому что не стоит точка с запятой после объявления переменной.
 
 Top
vasa666
Отправлено: 25 Октября, 2012 - 15:56:51
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2012  


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




Okula пишет:
vasa666, потому что не стоит точка с запятой после объявления переменной.


Вот в чём дело!)) пасиб!) заработало...
 
 Top
FIZy
Отправлено: 25 Октября, 2012 - 16:14:59
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Окт. 2009  


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




Альтернативный код)
PHP:
скопировать код в буфер обмена
  1. $amm = file("db_baze.dat");
  2. foreach($amm as $strKey => $strValue) {
  3.         $arStr = explode(" || ", $strValue);
  4.         foreach ($arStr as $elem) {
  5.                 $arResult[$strKey][] = $elem;
  6.         }
  7. }
  8. echo "<pre>";print_r($arResult);echo "</pre>";

Спойлер (Отобразить)

(Отредактировано автором: 25 Октября, 2012 - 16:16:01)

 
 Top
vasa666
Отправлено: 25 Октября, 2012 - 16:55:08
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Окт. 2012  


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




FIZy пишет:
Альтернативный код)
PHP:
скопировать код в буфер обмена
  1. $amm = file("db_baze.dat");
  2. foreach($amm as $strKey => $strValue) {
  3.         $arStr = explode(" || ", $strValue);
  4.         foreach ($arStr as $elem) {
  5.                 $arResult[$strKey][] = $elem;
  6.         }
  7. }
  8. echo "<pre>";print_r($arResult);echo "</pre>";

Спойлер (Отобразить)


а как в вашем коде вывести например значение "люба"??? я совсем ещё сырой в php)))
 
 Top
Okula
Отправлено: 25 Октября, 2012 - 18:07:41
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


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




vasa666, всё просто:
PHP:
скопировать код в буфер обмена
  1. echo $arResult[3][1]; // люба
 
 Top
DeepVarvar Супермодератор
Отправлено: 25 Октября, 2012 - 21:19:12
Post Id



Активный участник


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


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




Еще, + без багов на кол-во элементов:
PHP:
скопировать код в буфер обмена
  1. $db = 'data.dat';
  2. $separator = '||';
  3.  
  4. foreach (file($db) as $item) {
  5.  
  6.   $e = explode($separator, $item);
  7.   for ($i = 0; $i < 4; $i++) {
  8.     $e[$i] = isset($e[$i]) ? trim($e[$i]) : '[не определено]';
  9.   }
  10.  
  11.   var_dump($e);
  12.  
  13. }
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB