我怎样才能爆炸和修剪空白?
例如,我想从这个string中的元素创build一个数组:
$str = 'red, green, blue ,orange';
我知道你可以爆炸,并通过他们并修剪:
$arr = explode(',', $str); foreach ($arr as $value) { $new_arr[] = trim($value); }
但是我觉得有一个可以处理这个问题的方法。 有任何想法吗?
你可以使用array_map来完成以下工作 :
$new_arr = array_map('trim', explode(',', $str));
改进的答案
preg_split ('/[\s*,\s*]*,+[\s*,\s*]*/', 'red, green thing ,, ,, blue ,orange');
结果:
Array ( [0] => red [1] => green thing [2] => blue [3] => orange )
这个
- 仅在逗号分割
- 修剪每个项目的空格。
- 忽略空的项目
- 不要像“绿色的东西”这样的内部空间拆分项目
以下内容也会在inputstring的开始/结尾处处理空格:
$new_arr = preg_split('/\s*,\s*/', trim($str));
这是一个最小的testing,在每一个明智的位置上都有空格:
$str = ' first , second , third , fourth, fifth '; $new_arr = preg_split('/\s*,\s*/', trim($str)); var_export($str);
尝试这个:
$str = preg_replace("/\s*,\s*/", ",", 'red, green, blue ,orange');
你也可以用一行的正则expression式做这个
preg_split('@(?:\s*,\s*|^\s*|\s*$)@', $str, NULL, PREG_SPLIT_NO_EMPTY);
你可以使用preg_split() 。
$bar = preg_split ('/[,\s]+/', $str); print_r ($bar); /* Result: Array ( [0] => red [1] => green [2] => blue [3] => orange ) */
$str = str_replace(" ","", $str);
修剪和爆炸
$ str ='红色,绿色,蓝色,橙色';
$ str = trim($ str);
$ strArray = explode(',',$ str);
的print_r($ strArray);