【问题标题】:Add double quote between text seperated by comma [duplicate]在用逗号分隔的文本之间添加双引号 [重复]
【发布时间】:2014-06-04 02:30:06
【问题描述】:

我正在尝试弄清楚如何在用逗号分隔的文本之间添加双引号。

例如我有一个字符串

$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']';

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

【问题讨论】:

  • 你有一个字符串$string = starbucks, KFC, McDonalds 怎么可能呢?
  • $string = starbucks, KFC, McDonalds 给出语法错误。你的意思是在它周围加上引号吗?
  • 我实际上是从我的数据库中获取该字符串,并且该列返回该字符串。但我需要在这些文本之间添加引号,用逗号分隔。
  • @nodeffect 这不是一个例子,这只是错误和混乱。
  • 好的。我想知道这个 => $string = starbucks, KFC, McDonalds 是存储在您的数据库中的内容,还是这个 => starbucks, KFC, McDonalds - 就目前而言,您的问题根本没有任何意义。它在同一行,不同的行内吗?你不清楚它是如何被拉出来的。

标签: php quote


【解决方案1】:

首先,使您的字符串成为正确的字符串,因为您提供的不是。 (被那个可爱的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 :-)

【讨论】:

  • "(被那个可爱的 Fred -ii-指出)" ROLMHO!哎呀,谢谢!这值得 +1 只是因为 ;-)
  • @Fred-ii- 哈哈,你一定是我从另一个母亲那里得到的兄弟!
  • 如果答案是explode(',', $string),它可能是其他 1000 个问题的重复 :)
  • 你应该看看函数式编程风格,array_map 函数会以比 foreach 更优雅的方式完成工作
  • @Darren 到目前为止,OP 尚未接受或评论任何给出的答案。 See what I asked the OP ;-)
【解决方案2】:

它应该像一个魅力:

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

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



注意: 正如它在 cmets 中所注意到的(感谢 nodeffect),“split”函数已在 PHP 5.3.0 中被弃用。请改用“explode”。

【讨论】:

  • 谢谢,这更短,而且可以工作...但我使用爆炸和内爆进行拆分和连接...因为我收到警告说它已折旧。
  • @nodeffect 不错!但只有“拆分”功能已过时。你仍然可以使用“join”作为“implode”的别名,没关系。
【解决方案3】:

这是基本函数,没有任何检查(即$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);
}

【讨论】:

    【解决方案4】:

    我想到了一种非常讨厌的方法。 explode() 逗号,foreach 值,value = '"' . $value . '"';,然后运行 ​​implode(),如果您需要它作为单个值。

    【讨论】:

      【解决方案5】:

      你确定那不是一个数组?因为那很奇怪。

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

      $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)."\"";
      

      【讨论】:

        猜你喜欢
        • 2020-07-27
        • 1970-01-01
        • 1970-01-01
        • 2016-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-28
        相关资源
        最近更新 更多