内爆一个没有第一个元素的数组

Posted

技术标签:

【中文标题】内爆一个没有第一个元素的数组【英文标题】: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)) ? 【参考方案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))

【讨论】:

以上是关于内爆一个没有第一个元素的数组的主要内容,如果未能解决你的问题,请参考以下文章

用键内爆关联数组的最快方法

内爆形式元素数组

PHP:在除最后一个元素之外的每个元素之后显示逗号。使用“for”语句而不使用“内爆/爆炸”

内爆数组值?

基本内爆 foreach

如何在没有 foreach 的情况下在 PHP 中使用键和值来内爆数组