【问题标题】:How to implode comma separated outside string如何内爆逗号分隔的外部字符串
【发布时间】:2019-07-04 13:19:09
【问题描述】:

我有数组

( [0] => 1 [1] => 2 [2] => 3 )

我想做:

'1','2','3'

如何做到这一点我曾尝试使用 implode 但结果是:

'1,2,3'

有人可以帮帮我吗?谢谢。

【问题讨论】:

  • 你想要的结果的数据结构是什么?是字符串还是数组?
  • 结果是数组

标签: php arrays explode implode


【解决方案1】:

您只需将单引号添加到您的 implode 粘合字符串中,并在结果字符串的外部:

$array = [1, 2, 3];
echo "'" . implode("','", $array) . "'";

输出:

'1','2','3'

无论您的数组值是字符串还是数字,这都会起作用,例如

$array = ['1', '2', '3'];
echo "'" . implode("','", $array) . "'";

输出:

'1','2','3'

Demo on 3v4l.org

【讨论】:

    【解决方案2】:

    如果结果是一个数组(如您在 cmets 中所述),那么您可以使用 array_map 将您的整数数组转换为字符串数组:

    $arr = [1, 2, 3];
    var_dump(array_map('strval', $arr));
    

    这将产生一个字符串数组:

    ['1', '2', '3']
    

    【讨论】:

    • print_r 的输出中,您无法真正判断输入还不是字符串数组(您的代码输出看起来与 OP 输入数组完全一样)。 OP 使用 implode 的事实表明输出应该是一个字符串。不过,在这种情况下,该评论没有多大意义。谁知道呢!
    • @Nick 是的,我想这只是另一种选择,不过我现在已将 print_r 更改为 var_dump。 OP不是很清楚:P
    【解决方案3】:

    试试这个:

    $array = array('1', '2', '3');
    $comma_separated = "'" . implode ( "', '", $array ) . "'";
    echo $comma_separated;
    

    【讨论】:

    • 你检查过这个答案的输出吗?
    【解决方案4】:

    sprintf()array_map() 在这种情况下可以工作:

    $arr = ['1', '2', '3'];
    $str = implode(', ', array_map(function($val){return sprintf("'%s'", $val);}, $arr));
    echo $str; //'1', '2', '3'
    

    【讨论】:

      猜你喜欢
      • 2014-09-14
      • 2017-01-14
      • 2019-08-31
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-24
      相关资源
      最近更新 更多