php 將乙個字串分割為組成它的字元

2021-08-01 13:51:11 字數 1219 閱讀 5962

問: php裡如何將乙個字串分割為組成它的字元?

比如hello  -> [h, e, l, l, o]   以下有三種方法:

這是需要被分割的字串:  $str = 'hello小樣';

字串的長度: 

$len = mb_strlen($str, 'utf8');//

7

第一種: 

[總結]: 這裡直接使用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(對於每乙個出現的匹配返回時將會附加字串偏移量)

第三種:

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

將乙個字串逆序

這個題要我自己寫還不太有思路,可能不會想到寫三個函式,而且這個 也沒有執行出來 include include include pragma warning disable 4996 有乙個字元陣列的內容為 student a am i 請你將陣列的內容改為 i am a student 要求 不能...

php判斷乙個字串包含另乙個字串

a 58252,58253 如果 a 中存在 b,則為 true 否則為 false。b 58253 if strpos a,b false else 查詢字串在陣列中出現的次數 array array 1,hello 1,world hello 11 計算 string在 array 需為陣列 中...

判斷乙個字串是否為另外乙個字串旋轉之後的字串

例如 給定s1 aabcd和s2 bcdaa,返回1 給定s1 abcd和s2 acbd,返回0.aabcd左旋乙個字元得到abcda aabcd右旋乙個字元得到daabc 思路 把aabcd複製兩遍,看結果是否在aabcdaabcd 中 左旋和右旋的結果都在aabcdaabcd 中 include...