【问题标题】:php array to comma separated string implode issues [duplicate]php数组以逗号分隔的字符串内爆问题[重复]
【发布时间】:2017-01-14 19:25:40
【问题描述】:

我在将数组内爆为用双引号分隔的逗号时遇到问题。 我的脚本如下:

<?php

$arr = array(1,2,3,4,5,6,7,8,9);

$string = rtrim(implode('", ', $arr), ',');

echo $string; 

输出是:

1", 2", 3", 4", 5", 6", 7", 8", 9

但我想要下面的输出:

"1", "2", "3", "4", "5", "6", "7", "8", "9"

那么有人可以帮我解决这个问题吗?

谢谢!

【问题讨论】:

  • 我闻到了一个更大的问题......你打算在哪里使用这个内爆字符串?
  • $string = '"' . implode('", "', $arr) . '"';,这会解决它,但你为什么需要这样的输出?
  • @deceze 我想为应该返回的项目制作 IP 输出,例如:'162.251.82.122'、'162.251.82.250'、'162.251.82.123'、'162.251.82.251'
  • 为什么您的“项目”需要这种特殊格式的字符串?你不能使用正确的 serialisation,例如JSON?
  • @deceze 它是一个 NET_DNS2 输出的主机名和客户端的 A 记录,希望按照我提供的方式显示。

标签: php arrays implode


【解决方案1】:

我将把它扔进戒指作为替代解决方案:

$string = trim(json_encode(array_map('strval', $arr)), '[]');

json_encode 产生所需的结果,只是包裹在[..] 中;只需将trim 去掉括号即可。

【讨论】:

  • (因为,谁能抗拒bike-shed question,对吧?)
  • 它没有显示输出,因为我想要检查演示:ideone.com/oRHeFv
  • 大声笑,是的,它没有。 ^_^;;您需要将值转换为字符串……修复它。
【解决方案2】:

试试这个,

$arr = array(1,2,3,4,5,6,7,8,9);    
$string = implode('", "', $arr);   
$string =  '"'.$string.'"';
echo $string;

输出

"1", "2", "3", "4", "5", "6", "7", "8", "9"

DEMO

【讨论】:

    【解决方案3】:

    您应该已经添加了Opening and Closing Closing Double Quotes 并且不需要 rtrim。您可以测试Here 的以下代码可以:

    <?php
    
        $arr    = array(1,2,3,4,5,6,7,8,9);
        $string = '"' . implode('", "', $arr) .'"';
    
        echo $string;
    

    【讨论】:

      【解决方案4】:

      它适合你

       $arr    = array(1,2,3,4,5,6,7,8,9);
       $string = '"'.implode('", "', $arr).'"';
      
      echo $string;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-04
        • 2014-09-14
        • 2017-09-28
        • 2012-07-20
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        相关资源
        最近更新 更多