Есть ли хороший способ перебора символов строки? Я хотел бы иметь возможность делать foreach
, array_map
, array_walk
, array_filter
и т.д. Для символов строки.
Тип casting/juggling не получил меня нигде (поместите всю строку как один элемент массива), и лучшее решение, которое я нашел, просто использует цикл for для построения массива. Кажется, должно быть что-то лучше. Я имею в виду, если вы можете индексировать его, не должны ли вы также выполнять итерацию?
Это лучшее, что у меня есть
function stringToArray($s)
{
$r = array();
for($i=0; $i<strlen($s); $i++)
$r[$i] = $s[$i];
return $r;
}
$s1 = "textasstringwoohoo";
$arr = stringToArray($s1); //$arr now has character array
$ascval = array_map('ord', $arr); //so i can do stuff like this
$foreach ($arr as $curChar) {....}
$evenAsciiOnly = array_filter( function($x) {return ord($x) % 2 === 0;}, $arr);
Есть ли:
A) Способ сделать строку итерабельной
B) Лучший способ построить массив символов из строки (и если да, то как насчет другого направления?)
Мне кажется, что у меня что-то не так очевидно.