PHP在不使用循环的情况下将逗号分隔的值字符串转换为另一种格式

PHP在不使用循环的情况下将逗号分隔的值字符串转换为另一种格式,php,Php,在php中,如果我有一个来自数据库的逗号分隔数据字符串: 约翰、保罗、林戈、乔治 我怎样才能将它转换成这样的东西,而不使用for循环或任何额外的处理。php有一个函数可以做到这一点吗 $str = 'John','Paul','Ringo','George'; 我目前使用explode拆分字符串,然后重新格式化它。不管怎么说,要做到这一点而不做那件事 格式化的字符串被发送到SQL,在SQL中,它被用于MySQLin()函数。您可以在PHP中使用and函数 $names = explode(',

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

约翰、保罗、林戈、乔治

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

$str = 'John','Paul','Ringo','George';
我目前使用explode拆分字符串,然后重新格式化它。不管怎么说,要做到这一点而不做那件事

格式化的字符串被发送到SQL,在SQL中,它被用于MySQL
in()
函数。

您可以在PHP中使用and函数

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

我希望我没弄错:

$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'
您可以使用$1东西

$l = 'John,Paul,Ringo,George';
$lx = "'" . implode("','", explode(",", $l)) . "'";
echo $lx; // 'John','Paul','Ringo','George'
更新: 请参阅用法示例:

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

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

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

您可以像下面那样使用explode

$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')

$str='John'、'Paul'、'Ringo'、'George'
是错误的语法,而正确的语法是?
$str=“'John'、'Paul'、'Ringo'、'George'?使用mysql.Ok的用户ID。你的意思是它对php是错误的。但对于MySQL来说,这是正确的。我不会在php中重复它,只会将它发送到sql语句。我已经这样做了,但是我如何得到“John”、“Paul”等。我最终得到的是“John,Paul”,您的答案需要更改为
echo introde(“\”,“\”,“$names”)以获取所需格式。+1表示最快的解决方案。它比内爆/爆炸组合快2倍左右。