具有2个索引的数组的内爆1索引

时间:2013-08-14 22:15:14

标签: php arrays implode

我有一个数组$技能。我想制作一个包含所有skills的逗号分隔列表。

我认为我可以使用数组内爆来做到这一点,但看起来我必须使用foreach()并附加到字符串。有没有办法用数组内爆来做到这一点?

[skills] => Array
        (
            [0] => Array
                (
                    [email] => don.pinkus@gmail.com
                    [skill] => Statistics
                )

            [1] => Array
                (
                    [email] => don.pinkus@gmail.com
                    [skill] => Adobe Creative Suite
                )

            [2] => Array
                (
                    [email] => don.pinkus@gmail.com
                    [skill] => HTML + CSS
                )

            [3] => Array
                (
                    [email] => don.pinkus@gmail.com
                    [skill] => Web Analytics
                )

2 个答案:

答案 0 :(得分:3)

怎么样:

implode(",", array_column($skills, 'skill'));

答案 1 :(得分:0)

对于PHP 5.5,您可以使用Lyn的解决方案。对于之前的版本(5.3和5.4):

implode(', ', array_map(function($a) {return $a['skill'];}, $skills));

将其分解为多行以使其更易于阅读:

$array = array_map(
    function($a) {
        return $a['skill'];
    }, $skills);
echo implode(', ', $array);

这是PHP 5.3之前的解决方案(可能效率最高):

$out = '';
foreach ($skills as $val){
    $out .= $val['skill'].', ';
}
echo rtrim($out, ', ');