Home  >  Article  >  Backend Development  >  How to decompose a string into characters in php

How to decompose a string into characters in php

王林
王林Original
2019-10-08 11:29:414232browse

How to decompose a string into characters in php

First type:

$arr = str_split($str);
p($arr);

Result:

How to decompose a string into characters in php

Summary:

The str_split method is used directly to split, but unfortunately this method does not support Chinese parsing. Here you can consider the split of mb_split, and why here [sample] Will the two characters be divided into six garbled characters? It should be caused by utf8. One Chinese character in utf8 occupies 3 bytes, and one Chinese character in GBK and GB2312 occupies 2 bytes.

Second type:

$arr = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
P($arr);

Result:

How to decompose a string into characters in php

Summary:

Regular rules are used here to separate characters

preg_split(pattern, subject, limit, flags)

pattern: Pattern used for search, string form;

subject: Input string;

limit: how many characters are limited, -1|0|null means no limit

flags: PREG_SPLIT_NO_EMPTY (returns the separated non-empty part [commonly used]) PREG_SPLIT_DELIM_CAPTURE( Parenthesized expressions in delimited patterns will be captured and returned) PREG_SPLIT_OFFSET_CAPTURE (with the string offset appended to the return for each occurrence of a match).

Third type:

$len = mb_strlen($str, 'utf8');
$tmp = [];
for ($i = 0;$i < $len;$i++) {
    $tmp[] = $str[$i];
}
p($tmp);

Result:

How to decompose a string into characters in php

Result:

Use a loop to cut the string, first get the length of the string, and then for loop, the last unknown character here is because $len = 7, so the cycle is 7 times, which is different from the utf8 character confusion problem of the first method.

Recommended tutorial: PHP video tutorial

The above is the detailed content of How to decompose a string into characters in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn