我正在尝试使用一个数组函数(我考虑过array_map()
或array_walk()
,但无法让它完成我想要的任务),以便使用多维数组创建一个数组(类似于MySQL结果),将数组中的字段转换为新数组的键。
假设我有一个如下的数组:
$a = array(
0 => array( 'id' => 1, 'name' => 'john' ),
1 => array( 'id' => 28, 'name' => 'peter' )
);
我想得到另一个这样的数组:
$b = array(
1 => array( 'name' => 'john' ),
28 => array( 'name' => 'peter' )
);
我可以用一个简单的foreach循环来解决这个问题,但是我想知道是否有更有效的方法,使用一个内置函数。
3条答案
按热度按时间mcdcgff01#
array_map
和array_walk
不允许你改变键,foreach循环绝对是一个不错的选择,很多时候Foreach甚至比array_walk/array_map更有效。2hh7jdfx2#
您可以使用array_column函数,其输出接近您想要的
wixjitnu3#
这个任务实际上可以用一个“无主体”的
foreach()
循环来完成。使用“数组析构”来定义变量和方括号推送语法,整个操作可以写入
foreach()
签名。代码:(Demo)
如果函数方法是首选的,则
array_reduce()
能够将第一级密钥写入输出数组。代码:(Demo)