2013-01-25 179 views
0

,我有以下數據的數組:PHP從數組中創建一個新的類型的數組

$data = array(
0 => array(
    'firstname' => 'John', 
    'lastname' => 'Doe' 
), 
1 => array(
    'firstname' => 'Foo', 
    'lastname' => 'Bar' 
) 
) 

和身份證想操縱它與這個數組結束:

$finalData = array(
'firstname' => array('John','Foo'), 
'lastname' => array('Doe','Bar') 
) 

怎麼辦我用PHP完成了這個任務?如果可以在這種情況下使用PHP數組方法,那麼我很想了解它。

謝謝!

+0

使用循環或array_map –

回答

0

這對於像array_map這樣的功能來說太專門化了,而不會讓自己在腳下自我放鬆。但是你可以很容易地用foreach循環做到這一點:

$finalData = array(); 
foreach ($data as $person) { 
    $finalData['firstname'][] = $person['firstname']; 
    $finalData['lastname'][] = $person['lastname']; 
} 
0

你將不得不遍歷$數據收集單獨姓和名。不幸的是,沒有標準的php函數執行「數組採摘」。

0

嗯,我不認爲這樣的事情存在,但我認爲你應該閱讀docs on array functions

如果你沒有找到任何東西,使一些你自己的(可能與array_map),並請回答你自己的問題。

0

這給出了你想要的;

$new_data = array(); 
foreach ($data as $d) { 
    $keys = array_keys($d); 
    foreach ($keys as $k) { 
     $new_data[$k][] = $d[$k]; 
    } 
} 
print_r($new_data); 

結果;

 
Array 
(
    [firstname] => Array 
     (
      [0] => John 
      [1] => Foo 
     ) 

    [lastname] => Array 
     (
      [0] => Doe 
      [1] => Bar 
     ) 

) 
相關問題