2011-01-31 42 views
7

所以,我有一个数组是这样的: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... 

使用循环concate的值,如:

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

我不知道,`破灭()`? – 2011-01-31 18:24:57

+2

@Rafe凯特勒:是的,但它只适用于一维阵列。 – BoltClock 2011-01-31 18:29:19

回答

21

的最简单方法,当你有在阵列内只有一个项目:

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

您可以使用一个共同的array_map()招“flatte n“多维阵列,然后implode()”平坦“的结果,但内部PHP仍然循环通过您的阵列,当您拨打array_map()

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

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

是的,但PHP的速度更快。谢谢。 – qwerty 2011-01-31 18:26:47

7

在PHP 5> = 5.5.0

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