PHP将一串逗号分隔值转换为另一种格式,而不使用循环

时间:2014-05-25 08:18:20

标签: php

在php中,如果我有一串逗号分隔的数据来自数据库:

John,Paul,Ringo,George

我怎么能把它转换成这样的东西,而不使用for循环或任何额外的处理。 php有一个可以做到这一点的功能吗?

$str = 'John','Paul','Ringo','George';

我目前使用explode拆分字符串,然后重新格式化。无论如何要做到这一点而不这样做?

格式化的字符串被发送到一个SQL,它在MySQL IN()函数中使用。

6 个答案:

答案 0 :(得分:4)

如果你绝对不想使用explode(),你可以使用

$str = 'John,Paul,Ringo,George';
$newStr = "'" . str_replace(",","','", $str) . "'";

答案 1 :(得分:2)

您可以将preg_replace用于$ 1。

<强>更新: 请参阅用法示例:

echo preg_replace('((\\w+)(,?))', '"$1"$2', 'John,Paul,Ringo,George');

答案 2 :(得分:2)

你可以使用下面的爆炸

$db_data = 'John,Paul,Ringo,George';//from your db
$l = explode(',',$db_data);
echo "select * from table where column IN('".implode("','",$l)."')";

<强> 输出

select * from table where column IN('John','Paul','Ringo','George')

答案 3 :(得分:1)

您可以在PHP中使用explodeimplode函数。

$names = explode(',', 'John,Paul,Ringo,George');
echo implode(',', $names);

答案 4 :(得分:1)

我希望我帮到你:

$str_1 = 'John,Paul,Ringo,George';
$str_2 = explode(',', $str_1);
$str_3 = implode('\',\'', $str_2);
$str_4 = '\''.$str_3.'\'';

echo $str_4;

输出:'John','Paul','Ringo','George'

答案 5 :(得分:1)

$l = 'John,Paul,Ringo,George';
$lx = "'" . implode("','", explode(",", $l)) . "'";
echo $lx; // 'John','Paul','Ringo','George'