2010-09-01 33 views
0

如何重新格式化對象?重新格式化一個簡單的PHP數組

Array 
(
    [0] => Array 
     (
      [user_id] => 5 
      [first_name] => Ace 
      [last_name] => Black 
     ) 

    [1] => Array 
     (
      [user_id] => 6 
      [first_name] => Gary 
      [last_name] => Surname 
     ) 

    [2] => Array 
     (
      [user_id] => 7 
      [first_name] => Alan 
      [last_name] => Person 
     ) 

) 

我需要重新格式化此所以user_ID的名稱更改爲剛剛「ID」和FIRST_NAME和LAST_NAME值被合併到一個名爲「名稱」的單一值,因此最終的結果會是什麼樣子:

Array 
(
    [0] => Array 
     (
      [id] => 5 
      [name] => Ace Black 
     ) 

) 

回答

3

您可能會發現array_map有用此

function fixelement($e) 
{ 
    //build new element from old 
    $n=array(); 
    $n['id']=$e['user_id']; 
    $n['name']=$e['first_name'].' '.$e['last_name']; 

    //return value will be placed into array 
    return $n; 
} 

$reformatted = array_map("fixelement", $original); 

正如你所看到的,一個缺點是,這種方法構建陣列的第二個副本,但已經寫回調,你總是可以在使用它」這樣的地方':

foreach($original as $key=>$value) 
{ 
    $original[$key]=fixelement($value); 
} 
0

如果你想做到這一點: Foreach該數組,將鍵設置爲你想要的值,取消你不想要的值的鍵。

如果您需要它的副本: 將數組和ETL(提取,轉換,加載)數據提取到另一個相似的數組中。

如果您需要更多詳細信息以幫助我知道。