在php中,如果我有一串逗号分隔的数据来自数据库:
John,Paul,Ringo,George
我怎么能把它转换成这样的东西,而不使用for循环或任何额外的处理。 php有一个可以做到这一点的功能吗?
$str = 'John','Paul','Ringo','George';
我目前使用explode拆分字符串,然后重新格式化。无论如何要做到这一点而不这样做?
格式化的字符串被发送到一个SQL,它在MySQL IN()
函数中使用。
答案 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)
$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'