php 字符串拆分成数组

英文、数字、字符混合字符串

public function stringToAry($str)
{
    $array = [];
    if ($str) {
        $pinyin = preg_replace('/(?=\P{Nd})\P{L}/u', ' $0 ', $str);
        $pinyinArray = explode(" ", $pinyin);
        $pinyinArrayFilter = array_filter(
            $pinyinArray,
            function ($val) {
                return ($val === '' || $val === null) ? false : true;
            }
        );
        $array = array_values($pinyinArrayFilter);
    }
    return $array;
}

中文、英文、数字、字符混合字符串

public function stringToAry($str){
  $result = [];
  $notChStr = '';
  foreach (preg_split("/((?<!^)(?!$))/u", $str) as $value) {
      if (preg_match("/[_a-zA-Z0-9]/", $value)) {
          $notChStr .= $value;
          continue;
      }
      if ($notChStr != '') {
          $result[] = $notChStr;
          $notChStr = '';
      }
      if ($value == ' ') {
          continue;
      }
      $result[] = $value;
  }
  return $result;
}
superbad.cn