Search code examples
phparraysimplodearray-column

Return single column from a multi-dimensional array


I'm a novice at PHP and I need a quick solution to the following problem but can't seem to come up with one:

I have a multi-dimensional array like so

Array
(
    [0] => Array
        (
            [blogTags_id] => 1
            [tag_name] => google
            [inserted_on] => 2013-05-22 09:51:34
            [inserted_by] => 2
        )

    [1] => Array
        (
            [blogTags_id] => 2
            [tag_name] => technology
            [inserted_on] => 2013-05-22 09:51:34
            [inserted_by] => 2
        )
)

I want to use the implode() to somehow return a comma-separated string containing values of tag_name key like so.

google, technology

Is it possible to achieve this effect with the said function? If not then please suggest an alternate solution.


Solution

  • Quite simple:

    $input = array(
      array(
        'tag_name' => 'google'
      ),
      array(
        'tag_name' => 'technology'
      )
    );
    
    echo implode(', ', array_map(function ($entry) {
      return $entry['tag_name'];
    }, $input));
    

    http://3v4l.org/ltBZ0


    and new in php v5.5.0, array_column:

    echo implode(', ', array_column($input, 'tag_name'));