微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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本身是可变参数函数,可以合并发送给它的所有数组,因此它可以工作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐