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]   

> Описание: помогите с циклом разложения массива чето запутался
3d_killer
Отправлено: 21 Января, 2013 - 07:48:42
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




PHP:
скопировать код в буфер обмена
  1. $massiv =  $_POST['massiv'];
  2.  
  3. $n=0;
  4. while ($massiv[$n])
  5.         {
  6.                 $id=$massiv[$n];
  7.                 $n++;
  8.                 $value=$massiv[$n];
  9.                 $n++;
  10.                 echo ($id." - ".$value."<br>");
  11.         }

значения в массиве идут 0 позиция - ID 1 позиция - Значение и тд неработает вобще в цикл не заходит не пойму почему
(Добавление)
пример переданных данных большая часть значений пустая это так нужно:
CODE (htmlphp):
скопировать код в буфер обмена
  1. 0,,2,,3,,4,,5,,6,,7,234,34,,35,,36,,37,,77,,87,,88,,89,,90,,91,,94,,99,,101,234,111,,112,,114,,115,,117,,120,,131,,137,,138,,161,,162,,163,,164,,171,,172,,173,,174,,175,,176,,177,,178,,179,,180,,181,,182,,183,,184,,185,,186,,187,,188,,189,,190,,191,,192,,193,,194,,195,,196,,197,,198,,199,,200,,201,,202,,203,,204,,205,,206,,207,,208,,209,,210,,211,,212,,213,,214,,215,,216,,217,,218,,219,,220,,221,,222,,223,,224,,225,,226,,227,,228,,229,,230,,231,,232,,233,,234,,235,,236,,237,,238,,239,,240,,241,,243,,247,,248,,249,,250,,251,,252,,253,,254,,255,,260,,261,,262,,263,,264,,265,,266,,267,,268,,269,,270,,272,,273,,274,,275,,276,,277,,278,,279,,280,,281,,282,,283,,284,,285,,287,,288,,289,,290,,291,,292,,293,,295,,297,234,298,,299,,300,,301,,303,,304,,305,,306,,307,,308,,309,,310,234,311,,312,,313,,314,,315,
 
My status
 Top
avtor.fox
Отправлено: 21 Января, 2013 - 07:51:41
Post Id



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


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




3d_killer, приведите структуру массива.
###
Здравствуйте.
 
 Top
3d_killer
Отправлено: 21 Января, 2013 - 07:52:55
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




привел
 
My status
 Top
avtor.fox
Отправлено: 21 Января, 2013 - 08:01:39
Post Id



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


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




3d_killer, только сейчас увидел написанную хрень. Как цикл должен понять что это массив? Цикл бесконечный, нет выхода. На вход идёт первый байт и всё.
пфф
 
 Top
3d_killer
Отправлено: 21 Января, 2013 - 08:05:14
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




а как правильно помоги ато с утра туплю
 
My status
 Top
DelphinPRO
Отправлено: 21 Января, 2013 - 08:08:34
Post Id



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


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


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




3d_killer пишет:
в цикл не заходит не пойму почему


первый элемент массива - 0
цик перед входом сравнивает первый элемент с true
0 != true
поэтому в цикл захода не будет

при других входных данных, цикл может не пройти весь массив, а остановится на первом же значении, которое можно привести к false;


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
EuGen Администратор
Отправлено: 21 Января, 2013 - 08:08:45
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




$_POST['massiv'] - строка?
Тогда:
PHP:
скопировать код в буфер обмена
  1. $rgResult=array_filter(explode(','$_POST['massiv']), function($mItem)
  2. {
  3.    return !empty($mItem);
  4. });
  5. //var_dump($rgResult);

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
DelphinPRO
Отправлено: 21 Января, 2013 - 08:10:54
Post Id



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


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


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




PHP:
скопировать код в буфер обмена
  1. $massiv =  $_POST['massiv'];
  2.  
  3. $n=0;
  4. $count = count($massiv);
  5. while ($n < $count)
  6. {
  7.    $id = $massiv[$n++];
  8.    $value = $massiv[$n++];
  9.    echo $id . " - " . $value . "<br>";
  10. }


upd/
как-то не обратил внимания сразу: если входные данные - строка, то
PHP:
скопировать код в буфер обмена
  1. $massiv =  explode(',', $_POST['massiv']);

(Отредактировано автором: 21 Января, 2013 - 08:14:19)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
3d_killer
Отправлено: 21 Января, 2013 - 08:11:14
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


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




while (isset($massiv[$n]))
 
My status
 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