2013-10-06 91 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