将逗号分隔值转换为双引号逗号分隔字符串

Posted

技术标签:

【中文标题】将逗号分隔值转换为双引号逗号分隔字符串【英文标题】:Converting Comma Separated Value to Double Quotes comma separated string 【发布时间】:2012-07-05 08:14:57 【问题描述】:

我有一个逗号分隔的值,例如

alpha,beta,charlie

如何转换成

"alpha","beta","charlie"

使用php的单一功能而不使用str_replace?

【问题讨论】:

我不想使用多行代码来执行此操作。我认为php中可能有一个内置函数可以做到这一点 【参考方案1】:

Richard Parnaby-King 函数的替代方案(更短):

function addQuotes($string) 
    return '"'. implode('","', explode(',', $string)) .'"';


echo addQuotes('alpha,beta,charlie'); // = "alpha","beta","charlie"

【讨论】:

不仅更短,而且没有无用的循环和字符串连接 嘿 jexat,感谢您的回复,但我正在寻找一个内置功能。但是我认为如果我想要更少的代码行,那么使用 str_replace 是更好的选择。代码在这里: $rolestring = "'".str_replace(",","','",$roles)."'";【参考方案2】:

怎么样

    <?php
    $arr = spliti(",","alpha,beta,charlie");
    for($i=0; $i < sizeof($arr); $i++)
    $var = $var . '"' . $arr[$i] . '",';

    //to avoid comma at the end
    $var = substr($var, 0,-1);
    echo $var;
?>

功能:

<?php
function AddQuotes($str)
    $arr = spliti(",",$str);
    for($i=0; $i < sizeof($arr); $i++)
    $var = $var . '"' . $arr[$i] . '",';

    //to avoid comma at the end
    $var = substr($var, 0,-1);
    echo $var;

AddQuotes("alpha,beta,charlie");
?>

【讨论】:

感谢您的回复,但我正在寻找一个内置函数或非常少的代码行。所以我认为使用 str_replce 更像 $rolestring = "'".str_replace(",","','",$roles)."'";【参考方案3】:
/**
 * Take a comma separated string and place double quotes around each value.
 * @param String $string comma separated string, eg 'alpha,beta,charlie'
 * @return String comma separated, quoted values, eg '"alpha","beta","charlie"'
 */
function addQuote($string)

  $array = explode(',', $string);
  $newArray = array();
  foreach($array as $value)
  
    $newArray[] = '"' . $value . '"';
  
  $newString = implode(',', $newArray);
  return $newString;

echo addQuote('alpha,beta,charlie'); // results in: "alpha","beta","charlie"

【讨论】:

以上是关于将逗号分隔值转换为双引号逗号分隔字符串的主要内容,如果未能解决你的问题,请参考以下文章

PHP数组转字符串(属性加单(双)引号,逗号分隔)

PHP数组转字符串(属性加单(双)引号,逗号分隔)

在逗号上拆分字符串但忽略双引号内的逗号?

MySQL双引号加逗号,是啥分隔符

hive导入csv文件,字段中双引号内有逗号

数组转字符串(属性加单引号,逗号分隔)