For example, I want to turn $str = 'adfdf' into an array like ['a', 'd', 'f', 'd', 'f']
小伙看你根骨奇佳,潛力無(wú)限,來(lái)學(xué)PHP伐。
I have done string comparison before using the lcs algorithm, which involves breaking up strings into arrays. Due to Chinese issues, it is not possible to use str_split directly. You need to use preg_split
你可以封裝一個(gè)公共函數(shù)
function mb_str_split($str)
{
return preg_split('/(?<!^)(?!$)/u' , $str);
}
$string = '中國(guó)共產(chǎn)黨萬(wàn)歲!aaaaa';
var_dump(preg_split('//u', $string, 0, PREG_SPLIT_NO_EMPTY));
/*
array (size=13)
0 => string '中' (length=3)
1 => string '國(guó)' (length=3)
2 => string '共' (length=3)
3 => string '產(chǎn)' (length=3)
4 => string '黨' (length=3)
5 => string '萬(wàn)' (length=3)
6 => string '歲' (length=3)
7 => string '!' (length=3)
8 => string 'a' (length=1)
9 => string 'a' (length=1)
10 => string 'a' (length=1)
11 => string 'a' (length=1)
12 => string 'a' (length=1)
*/
The string itself can be used as an array
$str = "abcdef";
You output $str[0].$str[1].$str[2];
You will find that it is actually $str
array(" a","b","c","d","e","f");
$str = 'adfdf';
$arr = [];
for($i=0;$i<strlen($str);$i++) {
$arr[$i] = $str{$i};
}
var_dump($arr);
$str = 'adfdf';
preg_match_all('/(\w{1})/', $str, $matches);
var_dump($matches[0]);
$str = 'adfdf';
$temp = array();
for ($i = 0; $i < strlen($str); $i++) {
array_push($temp, $str{$i});
}
var_dump($temp);
$str = 'adfdf';
$len = mb_strlen($str);
$arr = [];
if(!isset($str[0])) {
exit('輸入合理字符串!');
}
$rb = function ($index = 0) use (&$rb, &$arr, $str, $len) {
array_push($arr, mb_substr($str, $index, 1,'UTF-8'));
$index++;
if ($index == $len) return $arr;
$rb($index);
};
$rb();
header("Content-type: text/html; charset=UTF-8");
var_dump($arr);
<?php
$str = 'adfdf';
$arr = array();
for($i=0;$i<strlen($str);$i++) {
$arr[$i] = $str[$i];
}
print_r($arr);
?>