我有以下数据数组:
$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 :(得分:0)
这对于像array_map
这样的功能来说太专业了,而不会让自己陷入困境。但您可以使用foreach
循环轻松完成此操作:
$finalData = array();
foreach ($data as $person) {
$finalData['firstname'][] = $person['firstname'];
$finalData['lastname'][] = $person['lastname'];
}
答案 1 :(得分:0)
您必须循环遍历$ data才能分别收集名字和姓氏。不幸的是,没有标准的PHP函数可以执行“数组采集”。
答案 2 :(得分:0)
嗯,我不认为存在类似的东西,但我认为你应该阅读docs on array functions
如果您没有找到任何内容,请自行创建(可能使用array_map),并回答您自己的问题。
答案 3 :(得分: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 ) )