2

This is a very basic quesion i know but im facing difficulties. I have an array like this:

Array
(
[0] => Array
    (
        [id] => 10772
    )

[1] => Array
    (
        [id] => 10775
    )

)

or you can say:

array(12) {
[0]=> array(1) { ["id"]=> int(10772) } [1]=> array(1) { ["id"]=> int(10775) }

but i need only the value in a string format like:

"10772,10775" or array("10772", "10775") 

how can i achieve that.

Chetan Ameta
  • 7,696
  • 3
  • 29
  • 44
Samia Ruponti
  • 3,910
  • 12
  • 42
  • 62

2 Answers2

13

use array_column function:

$array = array(
    array(
        'id' => 123456
    ),
    array(
        'id' => 52458
    ),
);

$id_array = array_column($array, 'id');

print_r($id_array);

output:

Array
(
    [0] => 123456
    [1] => 52458
)

for PHP version < 5.5 you can use:

$data = array_map(function($element) {
    return $element['id'];
}, $array);

print_r($data);
Chetan Ameta
  • 7,696
  • 3
  • 29
  • 44
1

You are looking for array_map function

$ids = array_map(function($row){ return $row['id']; }, $array);

Check this link for more info http://php.net/manual/en/function.array-map.php

amd
  • 20,637
  • 6
  • 49
  • 67