2013-10-06 46 views
2

我有数组:内爆的多阵列

$array = array(
    0 => array('first' => 'aaa', 
       'second' => 'bbb'), 
    1 => array('first' => 'erw', 
       'second' => 'wer'), 
    2 => array('first' => 'aaawe', 
       'second' => '345'), 
    3 => array('first' => 'aa345a', 
       'second' => 'dfgdfg'), 
); 

,我想得值与破灭:

$first = implode(';', $array['first']); 
$second = implode(';', $array['second']); 

但当然这不是工作。这样做的最好方法是什么?

回答

3

随着PHP 5.5存在功能array_column()http://php.net/array_column

$first = implode(';', array_column($array, 'first')); 
// same for $second 

PS:为了向后相容表象检查还https://github.com/ramsey/array_column


按照要求,一些 “简单”(PHP 5.3兼容):

$first = array_reduce($array, function ($array, $string) { return ($string !== null?"$string;":"").$array['first']; }, null); 
+0

感谢,但我不现在使用PHP 5.5 – josh4356

+0

@ josh4356看到我_p.s._部分:HTTPS://raw.github .com/ramsey/array_column/master/src/array_column.php是老版本的array_column实现。 – bwoebi

+0

谢谢,但我正在寻找简单的东西:)这是太长的代码 – josh4356

1

你可以做到这一点没有array_column();

<?php 
$array = array(
    0 => array('first' => 'aaa', 
       'second' => 'bbb'), 
    1 => array('first' => 'erw', 
       'second' => 'wer'), 
    2 => array('first' => 'aaawe', 
       'second' => '345'), 
    3 => array('first' => 'aa345a', 
       'second' => 'dfgdfg'), 
); 
foreach ($array as $row) 
{ 
    $values[] = $row['first']; 
    $val[] = $row['second']; 
} 
$first= implode(',', $values); 
$second= implode(',', $val); 
echo $first."<br>"; 
echo $second; 
?> 

我测试,这给了我输出

aaa,erw,aaawe,aa345a 
bbb,wer,345,dfgdfg