2015-12-09 2 views
-1

Если мы имеем переменную со строкой как:Преобразовать длинную строку в массив и индексы

$str = "This is test text and I'd like to split it";

Как я могу получить его, чтобы напечатать каждое конкретное слово в качестве элемента массива в foreach или for цикла, так что массив будет выглядеть ([0] => Это, [1] => is ...)

Спасибо!

+1

'Еогеасп (взрываются (»», $ НТР) как $ слова) {...}' – Calimero

+0

Пытались ли вы что-нибудь? – Rizier123

ответ

1

Вы можете использовать explode() функцию, например:

<?php 

    $str = "This is test text and I'd like to split it"; 

    $array = explode(" ", $str); 

    foreach($array as $key => $value){ 
     echo $key . " => " . $value . "<br />"; 
    } 

?> 

Выход:

0 => This 
1 => is 
2 => test 
3 => text 
4 => and 
5 => I'd 
6 => like 
7 => to 
8 => split 
9 => it 

Отредактировано:

Если вы хотите напечатать только определенное количество элементов, то используйте for вместо foreach.

<?php 

    $str = "This is test text and I'd like to split it"; 

    $array = explode(" ", $str); 

    for($i = 0; $i < 3; ++$i){ 
     echo $i . "=>" . $array[$i] . "<br />"; 
    } 

?> 

Выход:

0=>This 
1=>is 
2=>test 
+0

И если я хотел бы печатать только определенное количество слов (3 или 5 или что-то еще), поэтому мой вывод выглядит как «Это тест»? – Michael

+0

Ах получил. '$ str =" Это тестирование печати массива "; $ i = 0; foreach (explode ('', $ str) как $ word) { \t $ i ++; \t if ($ i> = 3) break; \t \t echo $ word. ""; } 'Спасибо! – Michael

+0

@Michael. Вы также можете использовать цикл 'for' для этой цели. См. Раздел **, отредактированный ** в моем ответе. –

Смежные вопросы