php分解字串 php怎麼把字串分解成字元

2021-10-22 21:26:01 字數 1115 閱讀 6439

第一種:$arr = str_split($str);

p($arr);

結果:

總結:這裡直接使用str_split 方法來分割, 但不幸的是這個方法不支援中文的解析, 這裡可以考慮下mb_split的分割, 而這裡為什麼[小樣]二字會被分割成六個亂碼呢? 這裡應該是utf8作怪, utf8中乙個漢字佔3個位元組, gbk和gb2312中的乙個漢字佔2個位元組。

第二種:$arr = preg_split("//u", $str, -1, preg_split_no_empty);

p($arr);

結果:

總結:這裡使用了正則來分割字元preg_split(pattern, subject, limit, flags)

pattern:用於搜尋的模式,字串形式;

subject: 輸入的字串;

limit: 限制多少個字元, -1|0|null表示不限制

flags: preg_split_no_empty(返回分隔後的非空部分[常用]) preg_split_delim_capture(用於分隔的模式中的括號表示式將**獲並返回) preg_split_offset_capture(對於每乙個出現的匹配返回時將會附加字串偏移量)。

第三種:$len = mb_strlen($str, 'utf8');

$tmp = ;

for ($i = 0;$i < $len;$i++) {

$tmp = $str[$i];

p($tmp);

結果:

結果:用迴圈來切割字串, 首先獲取該字串的長度, 然後for迴圈, 這裡最後的未知字元是因為$len = 7,所以迴圈7次, 不同於第一種方法的utf8字元錯亂問題。

分解字串

按要求分解字串,輸入兩個數m,n m代表輸入的m串字串,n代表輸出的每串字串的位數,不夠補0。例如 輸入2,8,abc 123456789 則輸出為 abc00000 12345678 90000000 分析思路 1.獲得字串的長度length後,判斷與 要輸出位數n 的大小,大於n的話,直接 pr...

strtok s分解字串

char strtok s char str,要分解的字串 const char delimiters,分隔符 char context 後續待分解字串 wcstok s是strtok s的寬字元版本 wchar t wcstok s wchar t str,const wchar t delimi...

字串操作 分解字串並補0

題目描述 按要求分解字串 輸入兩個數m,n m 輸入的m串字串 n 輸出的每串字串的位數,不夠補0。eg input 2 8 abc 123456789 out abc00000 12345678 90000000解題思路一 c 字串常用函式 include include include incl...