内爆数组值?

时间:2011-01-31 18:22:13

标签: php loops multidimensional-array implode

所以,我有一个像这样的数组:

Array
(
    [0] => Array
        (
            [name] => Something
        )

    [1] => Array
        (
            [name] => Something else
        )

    [2] => Array
        (
            [name] => Something else....
        )
)

是否有一种将值插入字符串的简单方法,如下所示:

echo implode(', ', $array[index]['name']) // result: Something, Something else, Something else...

没有使用循环来连接值,如下所示:

foreach ($array as  $key => $val) {
    $string .= ', ' . $val;
}
$string = substr($string, 0, -2); // Needed to cut of the last ', '

3 个答案:

答案 0 :(得分:24)

最简单的方法,当你在内部数组中只有一个项目时:

$values = array_map('array_pop', $array);
$imploded = implode(',', $values);

答案 1 :(得分:18)

您可以使用常见的array_map()技巧“展平”多维数组,然后implode()“展平”结果,但在调用array_map()时,PHP内部仍会循环遍历您的数组。

function get_name($i) {
    return $i['name'];
}

echo implode(', ', array_map('get_name', $array));

答案 2 :(得分:18)

在PHP 5> = 5.5.0

implode(', ', array_column($array, 'name'))