0

我有以下数据数组:

$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 数组方法。

谢谢!

4

4 回答 4

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);

结果;

大批
(
    [名字] => 数组
        (
            [0] => 约翰
            [1] => 富
        )

    [姓氏] => 数组
        (
            [0] => 母鹿
            [1] => 酒吧
        )

)
于 2013-01-25T00:42:49.903 回答
0

array_map这对于诸如不射中自己的脚之类的功能来说太专业了。但是你可以很容易地用一个foreach循环来做到这一点:

$finalData = array();
foreach ($data as $person) {
    $finalData['firstname'][] = $person['firstname'];
    $finalData['lastname'][] = $person['lastname'];
}
于 2013-01-25T00:34:24.900 回答
0

您将不得不遍历 $data 以分别收集名字和姓氏。不幸的是,没有标准的 php 函数可以执行“array pluck”。

于 2013-01-25T00:34:49.937 回答
0

好吧,我认为不存在类似的东西,但我认为您应该阅读有关数组函数的文档

如果您没有找到任何东西,请自己制作一些东西(可能使用 array_map),然后回答您自己的问题。

于 2013-01-25T00:35:09.677 回答