PHP - перебор символов строки

Есть ли хороший способ перебора символов строки? Я хотел бы иметь возможность выполнять foreach , array_map , array_walk , array_filter и т. Д. Для символов строки.

Приведение типов / жонглирование меня никуда не привело (поместила всю строку как один элемент массива), и лучшее решение я ' ve found просто использует цикл 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) Способ сделать строку повторяемой
Б) Лучший способ построить символьный массив из строки (и если да, то как насчет другого направления?)

Мне кажется, что я упускаю здесь что-то очевидное.

106
задан jon_darkstar 5 January 2011 в 05:14
поделиться