0

我知道,如果我例如使用此代码:

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

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

4

3 回答 3

1

使用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);
于 2013-02-25T21:16:16.577 回答
1

如果空格总是存在,一个快速的解决方案是使用:

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

否则(正如迈克尔建议的那样),您可以修剪这些值:

$tags = "hello, bye, test";
$tags = explode(",", $tags);
$tags = array_map('trim', $tags);
于 2013-02-25T21:18:02.230 回答
0

编辑:正如迈克尔指出的那样,我们不想替换所有空格,只替换逗号后面的空格。我们可以使用数组映射通过修剪来运行爆炸数组中的每个项目。

<?php
    $tags = "hello, bye, test";
    $tags = array_map( 
        function($s){ 
            return trim($s); 
        }, 
        explode(",", $tags)
    );
?>
于 2013-02-25T21:15:08.130 回答