猿问

将数组的深度值之一设置为键

背景


假设您有一个如下所示的数组,并且我们知道该id值是唯一的:


[

    0 => [

        'id' => 5,

        'name' => 'First item'

    ],

    1 => [

        'id' => 10,

        'name' => 'Second item',

    ],


    ...

]

问题


有没有办法将此数组映射到将id值作为键的数组,同时保持其余值不变?


期望的结果


现在注意到数组的键与id值匹配,理想的结果是:


[

    5 => [

        'id' => 5,

        'name' => 'First item'

    ],

    10 => [

        'id' => 10,

        'name' => 'Second item'

    ]


    ...

]

小细节


出于我的目的,键/值对是否id仍然存在于数组中并不重要,但我希望如果一种情况存在解决方案,则另一种解决方案不会有太大差异。


森林海
浏览 89回答 2
2回答

jeck猫

有一个内置的数组函数:$result = array_column($array, null, 'id');如果id子数组中不存在,则它将从前一个开始递增,并且如果该键在id后一个,则可能会被覆盖。

拉风的咖菲猫

循环方法:$newArray = [];foreach ($array as $k => $v) {    $newArray[$v['id']] = $v;}
随时随地看视频慕课网APP
我要回答