我有以下数据数组:
$data = array(
0 => array(
'firstname' => 'John',
'lastname' => 'Doe'
),
1 => array(
'firstname' => 'Foo',
'lastname' => 'Bar'
)
)
Id 喜欢操纵它以最终得到这个数组:
$finalData = array(
'firstname' => array('John','Foo'),
'lastname' => array('Doe','Bar')
)
如何使用 PHP 完成此操作?我喜欢了解PHP数组方法,如果可以在这种情况下使用的话。
谢谢!
这对于像array_map
这样的功能来说太专业了,而不会在脚上开枪。但是你可以通过foreach
循环轻松做到这一点:
$finalData = array();
foreach ($data as $person) {
$finalData['firstname'][] = $person['firstname'];
$finalData['lastname'][] = $person['lastname'];
}
您必须循环遍历$data以分别收集名字和姓氏。不幸的是,没有标准的php函数可以执行"数组采摘"。
好吧,我不认为存在这样的东西,但我认为您应该阅读有关数组函数的文档
如果您没有找到任何东西,请自己制作一些东西(可能带有array_map),请回答您自己的问题。
这给出了你想要的;
$new_data = array();
foreach ($data as $d) {
$keys = array_keys($d);
foreach ($keys as $k) {
$new_data[$k][] = $d[$k];
}
}
print_r($new_data);
结果;
数组( [名字] => 数组 ( [0] => 约翰 [1] => 福 ) [姓氏] => 数组 ( [0] => 母鹿 [1] => 巴 ))