我知道,如果我例如使用此代码:
<?php
$tags = "hello, bye, test";
$tags = explode(",", $tags);
?>
它将用逗号分隔。但是我仍然会留有空格,我想将这些值保存在没有这些空格的数据库中。我该怎么做呢?
我知道,如果我例如使用此代码:
<?php
$tags = "hello, bye, test";
$tags = explode(",", $tags);
?>
它将用逗号分隔。但是我仍然会留有空格,我想将这些值保存在没有这些空格的数据库中。我该怎么做呢?
使用explode with", "
作为分隔符怎么样?
$tags = "hello, bye, test";
$atags = explode(", ", $tags);
得到这个:
print_r($atags);
Array ( [0] => hello [1] => bye [2] => test )
我知道这不是最漂亮的解决方案,但它也有效。
从评论中编辑“是的,但它应该像 stackoverflow 上的标签系统一样在两种方式上工作。例如,它应该拆分“hello,bye”以及“hello,bye”和“hello bye”——Xegano 1 分钟前” ,
在这种情况下,您应该只使用explode with ","
,然后修剪单词周围的空格。像这样的东西:
$tags = "hello, bye, test";
$atags = explode(",", $tags);
$atags = array_map('trim', $atags);
如果空格总是存在,一个快速的解决方案是使用:
$tags = "hello, bye, test";
$tags = explode(", ", $tags);
否则(正如迈克尔建议的那样),您可以修剪这些值:
$tags = "hello, bye, test";
$tags = explode(",", $tags);
$tags = array_map('trim', $tags);
编辑:正如迈克尔指出的那样,我们不想替换所有空格,只替换逗号后面的空格。我们可以使用数组映射通过修剪来运行爆炸数组中的每个项目。
<?php
$tags = "hello, bye, test";
$tags = array_map(
function($s){
return trim($s);
},
explode(",", $tags)
);
?>