如何重新格式化对象?
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值合并为一个名为'name'的值,因此最终结果如下所示:
Array
(
[0] => Array
(
[id] => 5
[name] => Ace Black
)
)
答案 0 :(得分: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);
}
答案 1 :(得分:0)
如果你想这样做: Foreach该数组,将键设置为您想要的值,取消设置您不再需要的值的键。
如果你想要它的副本: 将该数组和ETL(提取,转换,加载)转换为另一个类似的数组。
如果您需要更多详细信息,请与我们联系。