我试图找出如何在用逗号分隔的文本之间添加双引号。
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']';
这会返回我上面提到的字符串......
答案 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)."\"";