2013-08-14 3 views
1

У меня есть навыки $ array. Я хочу сделать разделенный запятой список всех skills.Индекс Implode 1 массива с 2 индексами

Я думал, что могу сделать это с помощью массива implode, но похоже, что мне нужно будет использовать foreach() и добавить к строке. Есть ли способ сделать это с помощью только массива implode?

[skills] => Array 
     (
      [0] => Array 
       (
        [email] => [email protected] 
        [skill] => Statistics 
       ) 

      [1] => Array 
       (
        [email] => [email protected] 
        [skill] => Adobe Creative Suite 
       ) 

      [2] => Array 
       (
        [email] => [email protected] 
        [skill] => HTML + CSS 
       ) 

      [3] => Array 
       (
        [email] => [email protected] 
        [skill] => Web Analytics 
       ) 
+0

Почему у навыков есть адрес электронной почты, прикрепленный к каждому умению, особенно, поскольку это все тот же адрес электронной почты? – cmorrissey

+0

используется в другом месте в коде, не хотите перезагружать массив или иметь два массива –

ответ

3

как насчет:

implode(",", array_column($skills, 'skill')); 
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, ', '); 
Смежные вопросы