PHP重置没有循环的数组的第一级

我有一个简单的多维数组,如下所示

$array = array(
    array('key1'=>array('a','b')),
    array('key2'=>array('c','d'), 'key3'=>array('e','f')),
    array('key4'=>array('g','h'), 'key5'=>array('i','j'), 'key6'=>array('k','l', 'm'))
);

我会像下面这样重置它的第一级

$array = array(
    'key1'=>array('a','b'),
    'key2'=>array('c','d'),
    'key3'=>array('e','f'),
    'key4'=>array('g','h'),
    'key5'=>array('i','j'),
    'key6'=>array('k','l','m')
);

我知道使用foreach循环很容易实现,但是我想知道是否可以使用一行代码来实现.

到目前为止我尝试过的

array_map('key', $array);

但它仅返回子数组的第一个键.

有什么想法吗?

解决方法:

PHP 5.6在PHP中引入了可变参数函数,该函数允许使用splat运算符编写函数,该函数将任何其他参数带到同一数组中:….

使用该运算符的另一种方法-可能是鲜为人知的-是以相反的方式工作的.通过将该运算符放在函数调用的数组之前,它使该函数采用该数组的条目,就像您以内联方式编写它们一样.

您可以输入以下内容

$array = array_merge(... $array);

发送$array通常会返回$array不变.使用splat可使array_merge在其中未定义数量的第二级阵列上工作.由于array_merge本身是可变参数函数,可以合并发送给它的所有数组,因此它可以工作.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...