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