【问题标题】:Implode an array without first element内爆一个没有第一个元素的数组
【发布时间】:2015-03-25 16:30:07
【问题描述】:

我有一个这样的数组:

[0]=>array( [cname] => ABC
            [12] => 60.7500
            [13] => 33.7500
            [14] => 47.7500
            [15] => 86.0000
            [16] => 62.2500
            [17] => 59.5000
            [18] => 78.0000
            [19] => 42.7500
            [20] => 36.0000
            [21] => 40.0000
            [22] => 40.0000
            [23] => 24.0000
    )
)

现在,我必须在一个字段中打印cname,在下一个字段中我必须使用implode 函数打印其数据。它工作正常。但是当我内爆它时,它也给出了公司名称,这是我不想要的。

期望的结果:

Name: ABC
Data: 60.7500, 33.7500, 47.7500 ....

如何使用 implode 跳过第一个元素?

【问题讨论】:

  • 一开始为什么会有这样的数组?为什么不是多维array('name' => 'ABC', data => array(...))
  • 因为我必须在highcharts中显示数据,所以必须有这样的数组格式。
  • 什么是cname?看起来像常数。
  • implode(', ', array_slice($array, 1)) ?

标签: php arrays implode


【解决方案1】:

只需复制数组,然后在调用implode 之前删除cname 属性。

$copy = $arr;
unset($copy['cname']);
implode($copy);

这是有效的,因为在 PHP 中,array assignment copies。 (有点奇怪,但确实有效。)

【讨论】:

  • 我知道这已经过时了,但我想知道哪个解决方案更有效或更干净,你的或@Darren 在上面的 cmets 中建议的内容(问题的 cmets):implode(', ', array_slice($array, 1)) ?
【解决方案2】:

使用array_shift,后跟implode

$array = YOUR_ORIGINAL_ARRAY;

$cname = array_shift($array);
$string = implode(',', $array);

【讨论】:

    【解决方案3】:

    尝试以下方法:

    $removedElementValue = array_shift($yourArray);
    $implodedArray = implode(',', $yourArray);
    

    【讨论】:

      【解决方案4】:

      由于并非所有观众都在阅读 cmets,因此这里是 @darren 的最佳答案:

      implode(', ', array_slice($array, 1))
      

      【讨论】:

        猜你喜欢
        • 2013-12-15
        • 1970-01-01
        • 1970-01-01
        • 2018-05-01
        • 2018-12-24
        • 2022-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多