分隔空格+逗号


Delimiting space + comma

我知道,如果我使用以下代码:

<?php
    $tags = "hello, bye, test";
    $tags = explode(",", $tags);
?>

它会用逗号分隔。但我仍然有空间,我想在没有这些空间的情况下将这些值保存在数据库中。我该怎么做?

如果空间总是存在,则使用以下快速解决方案:

$tags = "hello, bye, test";
$tags = explode(", ", $tags);

否则(正如Michael建议的那样(,您可以调整值:

$tags = "hello, bye, test";
$tags = explode(",", $tags);
$tags = array_map('trim', $tags);

使用以", "为分隔符的爆炸符怎么样?

$tags = "hello, bye, test";
$atags = explode(", ", $tags);

获取此:

print_r($atags);
Array ( [0] => hello [1] => bye [2] => test )

我知道这不是最漂亮的解决方案,但它也有效。

编辑
来自评论"是的,但它应该像stackoverflow上的标签系统一样双向工作。例如,它应该拆分"hello,bye"以及"hello、bye"answers"hello bye"–Xegano 1分钟前">

在这种情况下,您应该只使用带有","的爆炸,然后修剪单词周围的空白。类似这样的东西:

$tags = "hello, bye, test";
$atags = explode(",", $tags);
$atags = array_map('trim', $atags);
编辑:正如Michael所指出的,我们不想替换所有的空白,只想替换逗号后面的空白。我们可以使用数组映射通过修剪来运行分解数组中的每个项目。
<?php
    $tags = "hello, bye, test";
    $tags = array_map( 
        function($s){ 
            return trim($s); 
        }, 
        explode(",", $tags)
    );
?>