[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Чудеса при обработке массива строк
Mile05
Сломал голову над простейшим, казалось бы, фрагментом. При обработке в цикле массива строк, если встречается пустая строка, то что-то в цикле ломается. Но никаких ошибок не выдается. Вот код:
Код

error_reporting( E_ALL & E_STRICT );
$re=array(1=>"a1",2=>"a2",3=>"",4=>"a4",5=>array("b1","b2"));
$q='';
for($ii=1;$ii<=5;$ii++) {
 echo "i=$ii,re[i]=".$re[$ii].", strlen=".strlen($re[$ii])."\n";
//  if ($ii<5 and strlen($re[$ii])>0) $q.=$re[$ii]."~";
 if ($ii<5 and $re[$ii]!="") $q.=$re[$ii]."~";
 elseif($ii=5) $q.=implode("\n",$re[5]);
}
echo "Конец прохода по действиям. Строка:$q";


Результат получается такой:
i=1,re[i]=a1, strlen=2
i=2,re[i]=a2, strlen=2
i=3,re[i]=, strlen=0
Конец прохода по действиям. Строка:a1~a2~b1
b2

Кто-нибудь может объяснить такие чудеса?



Спустя 11 минут, 55 секунд (13.08.2009 - 03:19) kirik написал(а):
Тут внимательно посмотри: elseif($ii=5)

Спустя 25 минут, 51 секунда (13.08.2009 - 03:45) Guest написал(а):
Цитата (kirik @ 13.08.2009 - 00:19)
Тут внимательно посмотри: elseif($ii=5)

Ага, спасибо, это понял. Но все равно непонятно почему результаты были именно такими. Куда девался 4й проход? 5й?

Спустя 4 минуты, 38 секунд (13.08.2009 - 03:50) SunSet написал(а):
Как я думал, тут раздел для начинающих)))Оказывается что нет)

Спустя 14 минут, 56 секунд (13.08.2009 - 04:05) kirik написал(а):
Цитата (Guest @ 12.08.2009 - 19:45)
Куда девался 4й проход? 5й?

Ошибок не видишь?

ЗЫ.
А.. у тебя репортинг не правильно включен. Нужно error_reporting( E_ALL | E_STRICT );

Спустя 3 часа, 20 минут, 37 секунд (13.08.2009 - 07:25) Krevedko написал(а):
Цитата (SunSet @ 13.08.2009 - 00:50)
Как я думал, тут раздел для начинающих)))Оказывается что нет)

после Попова мне тут поначалу тоже было тяжело )
Быстрый ответ:

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