从多维数组中内爆数据

Cob*_*ear 71 php arrays implode

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

我有一个像这样的多维数组

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
        )
)
Run Code Online (Sandbox Code Playgroud)

我想使用implode()以某种方式返回一个包含键值的逗号分隔字符串,tag_name如此.

google, technology
Run Code Online (Sandbox Code Playgroud)

是否有可能通过上述功能实现这种效果?如果没有,请建议替代解决方案.

Yos*_*shi 161

非常简单:

$input = array(
  array(
    'tag_name' => 'google'
  ),
  array(
    'tag_name' => 'technology'
  )
);

echo implode(', ', array_map(function ($entry) {
  return $entry['tag_name'];
}, $input));
Run Code Online (Sandbox Code Playgroud)

http://3v4l.org/ltBZ0


和php v5.5.0中的新功能,array_column:

echo implode(', ', array_column($input, 'tag_name'));
Run Code Online (Sandbox Code Playgroud)

  • 请注意,只有PHP 5.3或更高版本支持闭包. (4认同)
  • > = 5.5.0的解决方案是完美的! (2认同)

Mse*_*enb 11

虽然这个问题与字符串转换有关,但我偶然发现了这一点,同时想要一种简单的方法将数组写入我的日志文件.如果您只是想要这些信息,并且不关心字符串的确切清洁度,您可以考虑:

json_encode($array)
Run Code Online (Sandbox Code Playgroud)

  • @PauloBueno 在 2020 年你真的、**真的**不应该使用 PPH 5.4! (2认同)

Far*_*han 9

array_map是一个回调函数,您可以在其中使用传递的数组.这应该工作.

$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr));
Run Code Online (Sandbox Code Playgroud)


dec*_*eze 8

join(',', array_map(function (array $tag) { return $tag['tag_name']; }, $array))
Run Code Online (Sandbox Code Playgroud)


Vig*_*n S 5

这很简单

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