Php 将数组的一个深度值设置为键
背景 假设您有一个如下所示的数组,并且我们知道id值是唯一的:Php 将数组的一个深度值设置为键,php,arrays,mapping,Php,Arrays,Mapping,背景 假设您有一个如下所示的数组,并且我们知道id值是唯一的: [ 0 => [ 'id' => 5, 'name' => 'First item' ], 1 => [ 'id' => 10, 'name' => 'Second item', ], ... ] 问题: 有没有一种方法可以将这个数组映射到一个将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键/值对是否仍然存在于数组中并不重要,但我希望如果一种解决方案存在于一种情况下,另一种解决方案不会有太大差异。有一个内置的数组函数:
$result = array_column($array, null, 'id');
如果子数组中不存在id,则它将从上一个增加,并且如果该键稍后是id,则可能会被覆盖。有一个内置的数组函数:
$result = array_column($array, null, 'id');
如果子数组中不存在id,则它将从上一个增加,并且如果该键稍后是id,则可能会被覆盖。循环方法:
$newArray = [];
foreach ($array as $k => $v) {
$newArray[$v['id']] = $v;
}
循环方法:
$newArray = [];
foreach ($array as $k => $v) {
$newArray[$v['id']] = $v;
}
编辑ID使其更明显。你放弃了吗?@abracadver-Aha,对不起。不,我没有放弃。因为工作的关系,我一直没有回来。我很快就会带着那个复选标记回来编辑ID使其更明显。你放弃了吗?@abracadver-Aha,对不起。不,我没有放弃。因为工作的关系,我一直没有回来。我很快就会带着那个复选标记回来