Zum Beispiel möchte ich $str = 'adfdf' in ein Array wie ['a', 'd', 'f', 'd', 'f'] ändern
小伙看你根骨奇佳,潜力无限,来学PHP伐。
发现可以用str_split这个函数
之前做过字符串对比的lcs算法 里面涉及到对字符串的打散成数组,由于涉及到中文的问题 直接使用str_split是不行的 要使用preg_split
你可以封装一个公共函数 function mb_str_split($str) { return preg_split('/(?<!^)(?!$)/u' , $str); }
$string = '中国共产党万岁!aaaaa'; var_dump(preg_split('//u', $string, 0, PREG_SPLIT_NO_EMPTY)); /* array (size=13) 0 => string '中' (length=3) 1 => string '国' (length=3) 2 => string '共' (length=3) 3 => string '产' (length=3) 4 => string '党' (length=3) 5 => string '万' (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) */
preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
字符串本身就是可以作为数组用$str = "abcdef";你输出 $str[0].$str[1].$str[2];你会发现其实就是$strarray("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); ?>
explode不行?
发现可以用str_split这个函数
之前做过字符串对比的lcs算法 里面涉及到对字符串的打散成数组,由于涉及到中文的问题 直接使用str_split是不行的 要使用preg_split
字符串本身就是可以作为数组用
$str = "abcdef";
你输出 $str[0].$str[1].$str[2];
你会发现其实就是$str
array("a","b","c","d","e","f");
$str = 'adfdf';
explode不行?