Цикл for

Ann

Новичок
Цикл for

Почему при записи
PHP:
preg_match_all('/([a-zA-Zа-яА-Я]+)/i',$sl,$ok);
for ($i=0; $i<count($ok[1]); $i++) $Wok=$ok[1][$i];

print_r ($Wok);
выводит только первый элемент массива, тогда как если вместо $Wok= поставить echo выводит весь массив? Мне надо вытащить весь массив.
 

MD

Guest
имхо, все верно. так как ты всегда обращаешся к первому эдементу.
> ... $ok[1] ....
непонятно только зачем тебе такой скрипт?
split() по пробелу будет тебе и быстрее и полезней.
 

Quidle

Полноценный новичок
странно, что этот код вообще работает...
А вообще $Wok[]=$ok[1][$i];
 

MD

Guest
не странно.
стринг здесь просто идет как массив символов.
 

Quidle

Полноценный новичок
Запись $Wok=$ok[1][$i]
означает, что ты перезаписываешь переменную (!) $Wok.
Если ты хочешь сделать из неё массив и добавлять очередные элементы в этот массив, то сделай так:
$Wok[]=$ok[1][$i]
 

tony2001

TeaM PHPClub
это не оно же?
PHP:
preg_match_all('/([a-zA-Zа-яА-Я]+)/i',$sl,$ok);
$Wok = Array();
if (isset($ok[1])) {
  $Wok = $ok[1];
}
 

MD

Guest
все равно не понимаю, что мешает юзить split().
:)
 
Сверху