Хорошо, я знаю, что это просто, на самом деле чертовски просто, я делал это в прошлом проекте около недели назад, но я не знаю, почему это пропало у меня в голове.

Вход:

$word = "stack";

Что я хочу сделать:

$array = array("s", "t", "a", "c", "k");

Любая помощь будет оценена по достоинству!

1
born2hack 3 Сен 2009 в 13:48
1
Для информации вы можете сделать это: $ foo = 'bar'; эхо $ foo [1]; // напечатает 'a';
 – 
Boris Guéry
3 Сен 2009 в 13:56

3 ответа

Лучший ответ

str_split ();

2
Ionuț G. Stan 3 Сен 2009 в 13:52
Я чувствую себя такой глупой .. ЧЕРТ, Спасибо за быстрый ответ, нужен срочно!
 – 
born2hack
3 Сен 2009 в 13:55
2
Не расстраивайся. Найти эти функции PHP может быть сложно, и их очень много, больше, чем многие думают.
 – 
cletus
3 Сен 2009 в 13:56

Ваш вопрос не слишком ясен, но я подозреваю, что вы хотите превратить свою строку в массив. На самом деле вам не обязательно. Вы можете просто получить доступ к $ word, как если бы это был массив:

$word = 'stack';
for ($i=0, $m = strlen($word); $i < $m; $i++)
    echo $word[$i], "\n";
3
NSSec 3 Сен 2009 в 13:54
Что, если он захочет использовать foreach с этой строкой? К сожалению, в PHP строки представляют собой полу-массивы.
 – 
Ionuț G. Stan
3 Сен 2009 в 13:56
1
Что ж, это был бы странный способ делать вещи (я хочу перебрать эту строку, но она ДОЛЖНА быть foreach, даже если цикл for подойдет). Но, действительно, есть случаи, когда вам лучше использовать str_split (). Но если это вообще возможно, я бы предпочел не использовать str_split (), поскольку он создает новый массив и strlen($word) новые строки.
 – 
NSSec
3 Сен 2009 в 14:02
Думаю, я понял, почему некоторые аспекты PHP так плохи. Потому что люди не заботятся о них.
 – 
Ionuț G. Stan
3 Сен 2009 в 14:59

Попробуй это:

var_dump(str_split("abc"));
0
Rostyslav Dzinko 29 Авг 2012 в 00:33