1

什么是转换数组的好方法,如下所示:

Array (
    [0] = Array (
            [0] = Array (
                    [key] = val
                    [key2] = val2
                )

        )
    [1] = Array (
            [0] = Array (
                    [key] = val
                    [key2] = val2
                )

        )
)

Array (
    [0] = Array (
            [key] = val
            [key] = val2
        )
    [1] = Array (
            [key] = val
            [key] = val2
        )
)
4

5 回答 5

5

这可能是一种相当巧妙的方式

$output=array_map('array_shift', $input);

这使用array_map对输入数组的每个元素调用array_shift ,这将为您提供每个子数组的第一个元素!漂亮的小单线,不是吗?

虽然很好,但它并不是非常有效,因为 array_shift 所做的工作比我们需要的要多 - 一个简单的循环实际上要快得多(我刚刚对一个有 1000 个元素的数组进行了快速基准测试,这大约快了 6 倍)

$output=array();
foreach ($input as $element){
    $output[]=$element[0];
}
于 2011-05-31T21:51:51.707 回答
1
$new=array();
foreach($array as $a){
  $new[]=array_shift($a);
}
于 2011-05-31T21:49:23.593 回答
0
$new=array();
foreach ($array as $a){
$new[]=$a[0];
}

print_r($new);
于 2011-05-31T21:48:45.103 回答
0

如果您的数组是$my_array并且有 2 个元素,您可以:

$my_array = array_merge($my_array[0], $my_array[1]);

希望有帮助。

于 2011-05-31T21:54:09.130 回答
0

我想每个人都想过这个。这正是这样array_column()做的。

代码:(演示

$array=[
    [
        ['key'=>'val','key2'=>'val2']
    ],
    [
        ['key'=>'val','key2'=>'val2']
    ]
];
var_export(array_column($array,0));

输出:

array (
  0 => 
  array (
    'key' => 'val',
    'key2' => 'val2',
  ),
  1 => 
  array (
    'key' => 'val',
    'key2' => 'val2',
  ),
)
于 2017-07-31T13:30:36.777 回答