例如,我想从这个字符串中的元素创建一个数组:
$str = 'red, green, blue ,orange';
我知道你可以通过爆炸和循环,并修剪:
$arr = explode(',', $str);
foreach ($arr as $value) {
$new_arr[] = trim($value);
}
但我觉得有一种方法可以解决这个问题。什么好主意吗?
例如,我想从这个字符串中的元素创建一个数组:
$str = 'red, green, blue ,orange';
我知道你可以通过爆炸和循环,并修剪:
$arr = explode(',', $str);
foreach ($arr as $value) {
$new_arr[] = trim($value);
}
但我觉得有一种方法可以解决这个问题。什么好主意吗?
当前回答
$str = str_replace(" ","", $str);
其他回答
使用array_map可以完成以下操作:
$new_arr = array_map('trim', explode(',', $str));
为此可以使用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 = 'red, green, blue ,orange';
$new_string = explode(',',preg_replace('/\s+/', '', $str));
将结果输出为
Array
(
[0] => red
[1] => green
[2] => blue
[3] => orange
)
改进后的答案
preg_split ('/(\s*,*\s*)*,+(\s*,*\s*)*/', 'red, green thing ,,
,, blue ,orange');
结果:
Array
(
[0] => red
[1] => green thing
[2] => blue
[3] => orange
)
这样的:
只对逗号进行分隔 修剪每个项目的空白。 忽略空项 不会用“绿色物品”这样的内部空格分割项目