2010-09-01 35 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(提取,转换,加载)数据提取到另一个相似的数组中。

如果您需要更多详细信息以帮助我知道。