在逗号分隔的文本之间添加双引号

时间:2014-06-04 02:30:07

标签: php quote

我试图找出如何在用逗号分隔的文本之间添加双引号。

e.g。我有一个字符串

$string = "starbucks, KFC, McDonalds";

我想将其转换为

$string = '"starbucks", "KFC", "McDonalds"';

将$ string传递给函数。谢谢!

编辑:对于一些没有得到它的人...... 我运行了这段代码

$result = mysql_query('SELECT * FROM test WHERE id= 1');
$result = mysql_fetch_array($result);

echo ' $result['testing']';

这会返回我上面提到的字符串......

5 个答案:

答案 0 :(得分:3)

首先,让你的字符串成为正确的字符串,因为你提供的字符串不是。 (那个可爱的Fred -ii-指出)。

$string = 'starbucks, KFC, McDonalds';
$parts = explode(', ', $string);

正如您所看到的,explode使用每个名称选项设置数组$parts。以下foreach循环并在名称周围添加"

$d = array();
foreach ($parts as $name) {
    $d[] = '"' . $name . '"';
}

$d返回:

"starbucks", "KFC", "McDonalds"

可能不是最快捷的方式,但可以按照您的要求执行。

As this.lau_ pointed out, its most definitely a duplicate.

如果您想要一个简单的选项,请使用felipsmartins answer: - )

答案 1 :(得分:1)

它应该像魅力一样:

$parts = split(', ', 'starbucks, KFC, McDonalds');

echo('"' . join('", "', $parts) . '"');



注意: 正如它在评论中注意到的那样(感谢,nodeffect),“拆分”功能自PHP 5.3.0起已被弃用。请改为使用“爆炸”。

答案 2 :(得分:1)

这是基本函数,没有任何检查(即$ arr应该是array_map和implode函数中的数组,$ str应该是一个字符串,而不是explode函数中的数组):

function get_quoted_string($str) {
  // Here you will get an array of words delimited by comma with space
  $arr = explode (', ', $str);   
  // Wrapping each array element with quotes
  $arr = array_map(function($x){ return '"'.$x.'"'; }, $arr); 
  // Returning string delimited by comma with space
  return implode(', ', $arr);
}

答案 3 :(得分:0)

在我看来,这是一个非常讨厌的方式。 explode()使用逗号,foreach值,value = '"' . $value . '"';,然后运行implode(),如果您需要它作为单个值。

答案 4 :(得分:0)

你确定那不是阵列吗?因为那很奇怪。

但这是一种方法,我想......

$string = "starbucks, KFC, McDonalds";

// Use str_replace to replace each comma with a comma surrounded by double-quotes.
// And then shove a double-quote on the beginning and end
// Remember to escape your double quotes...

$newstring = "\"".str_replace(", ", "\",\"", $string)."\"";