Implode来自multidimensional array的数据

我是PHP新手,我需要一个快速解决以下问题,但似乎无法拿出一个:

我有一个像这样的multidimensional array

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

我想使用implode()以某种方式返回包含tag_name键的值的逗号分隔的string,如此。

 google, technology 

用这个函数可以达到这个效果吗? 如果没有,请提出一个备用解决scheme。

非常简单:

 $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


和新的PHP array_columnarray_column

 echo implode(', ', array_column($input, 'tag_name')); 
 join(',', array_map(function (array $tag) { return $tag['tag_name']; }, $array)) 

array_map是一个callback函数,您可以在其中玩传入的数组。 这应该工作。

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

很简单去这个

 $str; foreach ($arrays as $arr) { $str .= $arr["tag_name"] . ","; } $str = trim($str, ',');//removes the final comma 

如果您希望“tag_name”与关联的“blogTags_id”使用:(PHP> 5.5)

 $blogDatas = array_column($your_multi_dim_array, 'tag_name', 'blogTags_id'); echo implode(', ', array_map(function ($k, $v) { return "$k: $v"; }, array_keys($blogDatas), array_values($blogDatas)));