10

I have an array like this:

[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
    )
)

Now, I have to print the cname in one field and in next field I have to print its data using implode function. It works fine. But When I implode it, it also gives the company name as well, which I do not want.

Desired Result:

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

How can I skip the first element using implode?

RK.
  • 973
  • 5
  • 19
  • 45

4 Answers4

15

Just copy the array, then delete the cname property before calling implode.

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

This works because in PHP, array assignment copies. (Sort of bizarre, but it works.)

Community
  • 1
  • 1
Alexis King
  • 43,109
  • 15
  • 131
  • 205
  • I know this is old but came up to it right know and was wondering which solution is more efficient or clean, yours or what @Darren suggests in the comments above (comments of question): `implode(', ', array_slice($array, 1))`? – Dim13i Apr 26 '18 at 08:27
6

Use array_shift followed by implode.

$array = YOUR_ORIGINAL_ARRAY;

$cname = array_shift($array);
$string = implode(',', $array);
web-nomad
  • 6,003
  • 3
  • 34
  • 49
3

Try the following:

$removedElementValue = array_shift($yourArray);
$implodedArray = implode(',', $yourArray);
AamirR
  • 11,672
  • 4
  • 59
  • 73
2

Since not all viewers are reading the comments, here the best answer for me from @darren:

implode(', ', array_slice($array, 1))
CasualBen
  • 829
  • 8
  • 22