我有一个简单的多维数组,如下所示
$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);
但它只返回子数组的第一个键。
有什么想法吗?
答案 0 :(得分:2)
PHP 5.6在PHP中引入了可变参数函数,允许用函数编写函数,使用splat运算符将任何其他参数带入同一数组:...
。
另一个 - 也许相当不为人知 - 使用该运算符的方式是它的另一种方式。通过在函数调用中将该运算符放在数组之前,它使该函数获取该数组的条目,就像您编写 inline 一样。
允许您输入:
$array = array_merge(... $array);
发送$ array通常会返回$ array不变。使用splat使array_merge
可以处理未定义数量的第二级数组。由于array_merge本身是一个可变函数,可以合并您发送给它的任何数组,因此可以正常工作。
答案 1 :(得分:1)