Easiest way to implode() a two-dimensional array? Easiest way to implode() a two-dimensional array? arrays arrays

Easiest way to implode() a two-dimensional array?


This modifies your array using array_map, but probably for the better by turning it into a 1D array of tag_id's. Then you can just use implode like normal:

$arr = array_map(function($el){ return $el['tag_id']; }, $arr);$str = implode(',', $arr);

If you don't want to modify your array than you can just do this:

$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr));

Codepad Demo


You asked for a two-dimensional array, here's a function that will work for multidimensional array.

function implode_r($g, $p) {    return is_array($p) ?           implode($g, array_map(__FUNCTION__, array_fill(0, count($p), $g), $p)) :            $p;}

I can flatten an array structure like so:

$multidimensional_array = array(    'This',    array(        'is',        array(            'a',            'test'        ),        array(            'for',            'multidimensional',            array(                'array'            )        )    ));echo implode_r(',', $multidimensional_array);

The results is:

This,is,a,test,for,multidimensional,array


// simplest$str = implode(',',array_map('implode',$arr));