[php] 分割文字問題 (explode??)

眾所周知, 一段以下咁既text, 可以用explode切開成4個var.
a|b|c|d

咁如果段text係下邊咁樣, 點分割成4個變數?
abcd


即係我相每隻字佔一個var..有咩func可以做到?
或者有無func可以為每隻字之間加入空格?
a b c d

求其寫左個
唔知performance如何

function explodeToChar($str){
        for($i=0;$i<strlen($str);$i++)
                $arr[] = substr($str,$i,1);
        return $arr;
}

$str = "Hello World!";
print_r(explodeToChar($str));

TOP

係wo..用substr再加for咪得..唔該曬ching
  1. Array
  2. (
  3.     [0] => H
  4.     [1] => e
  5.     [2] => l
  6.     [3] => l
  7.     [4] => o
  8.     [5] =>  
  9.     [6] => W
  10.     [7] => o
  11.     [8] => r
  12.     [9] => l
  13.     [10] => d
  14.     [11] => !
  15. )
複製代碼

TOP

補充: 如果中文字呢?

TOP

岩岩試左,其實唔用substr都得
function explodeToChar($str){
        for($i=0;$i<strlen($str);$i++)
                $arr[] = $str[$i];
        return $arr;
}

其實你既目的係想插空格還是想爆做array
不如你直接問好過

TOP

sorry..
其實我係想分割中文字..
即係咁...

$str = 中國人
$arr[0] = 中
$arr[1] = 國
$arr[2] = 人
但係substr唔support中文字,
所以會唔會先插空白後explode先得?

TOP

中文寫都得 不過用multibytes function
借樓上既code一用

function explodeToChar($str){
        for($i=0;$i<mb_strlen($str);$i++)
                $arr[] = mb_substr($str,$i,1);
        return $arr;
}

$str = "Hello World!";
print_r(explodeToChar($str));

TOP