如何将列数据转换为行数据

时间:2016-09-05 10:16:38

标签: php algorithm laravel

输入:

beaconManager.requestAlwaysAuthorization()

我想输出:

$inputData = [
     '0' => [
             'name' => 'allen', 
             'team' => '76ers',
             'num' => '3'
     ],
     '1' => [
             'name' => 'tmac', 
             'team' => 'magic',
             'num' => '1'
     ],
     '2' => [
             'name' => 'kobe', 
             'team' => 'lakers',
             'num' => '8'
     ]
];

最有效的方法是什么?我有大约400行数据要处理。

6 个答案:

答案 0 :(得分:2)

这有效:

$array = array_map(function($a) {
    return array_values($a);
}, $data);

array_map()将对数组的每个元素应用闭包。

array_values()将返回一个值数组,而不包含每个子数组的键。

答案 1 :(得分:1)

PHP 有一个内置函数,可以完全按照您想要的名称array_column()执行操作。你需要传递你的多维数组的键,它将完成剩下的工作。 这是一个例子:

foreach($data[0] as $key=>$value){
$out[] = array_column($data, $key);
};

var_dump($out);

答案 2 :(得分:0)

尝试var_dump(array_column($ data,' name'));

答案 3 :(得分:0)

我建议使用以下代码在一次迭代中完成:

$result = [[],[],[]];
array_walk($data, function($item) use (&$result) {
    $row = array_values($item);
    $result[0][] = $row[0];
    $result[1][] = $row[1];
    $result[2][] = $row[2];

});
print_r($result);

答案 4 :(得分:0)

将数组格式化为您要查找的内容。代码不关心原始数组中使用的密钥。

array_walk($data, function(&$item) {
    $item = array_values($item);
});

答案 5 :(得分:0)

试试这个

foreach ($data as $key => $value) {
   $arr[]=  array_values($value);
}
print_r($arr);