Apakah ada cara yang bagus untuk mengulang karakter string? Saya ingin bisa melakukan foreach
, array_map
, array_walk
, array_filter
dsb di karakter dari string.
Ketik casting / juggling tidak membawa saya ke mana pun (letakkan seluruh string sebagai satu elemen array), dan solusi terbaik yang saya temukan hanyalah menggunakan for loop untuk membangun array. Rasanya harus ada sesuatu yang lebih baik. Maksud saya, jika Anda dapat mengindeksnya, bukankah seharusnya Anda dapat mengulangnya juga?
Ini yang terbaik yang aku punya
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);
Apakah ada:
A) Sebuah cara untuk membuat string iterable
B) Cara yang lebih baik untuk membangun array karakter dari string (dan jika demikian, bagaimana dengan arah lainnya?)
Saya merasa seperti saya kehilangan sesuatu yang jelas di sini.
array_filter
dalam pengertian ini bisa lebih baik dilakukan dengan fungsi string atau reg-ex