使用值部分作为键转换关联数组- PHP [duplicate]

gopyfrb3  于 2023-04-04  发布在  PHP
关注(0)|答案(2)|浏览(138)

此问题在此处已有答案

Generate an associative array from an array of rows using one column as keys and another column as values(3个答案)
5天前关闭。
我需要把数组的键替换成一个值,这个值在我的值对应中
我有一个数组,看起来像这样:

Array( 
  [0] => [ 
    'id' => 13, 
    'name' => 'Victor', 
    'age' => 30 
  ], 
  [1] => [ 
    'id' => 49, 
    'name' => 'Ronaldo de Assis', 
    'age' => 33
  ], 
  [2] => [ 
    'id' => 9,  
    'name' => 'Diego', 
    'age' => 28
  ]
)

我需要像这样替换id的顺序键:

Array( 
  ['13'] => [ 
    'id' => 13, 
    'name' => 'Victor', 
    'age' => 30 
  ], 
  ['49'] => [ 
    'id' => 49, 
    'name' => 'Ronaldo de Assis', 
    'age' => 33
  ], 
  ['9'] => [ 
    'id' => 9,  
    'name' => 'Diego', 
    'age' => 28
  ]
)

但是我正在寻找不使用for/foreaches的解决方案。我想使用php的数组函数来解决这个问题。就像array_column()的工作方式一样,但保留所有数组值,而不是只保留其中一个。
有人能帮我吗?

c9x0cxw0

c9x0cxw01#

可以使用array_reduce和匿名函数fn

$outputArr = array_reduce(
  $array, 
  fn($acc, $item) => ($acc + [$item['id'] => $item]), 
  []
);

print_r($outputArr);
jhkqcmku

jhkqcmku2#

使用array_combine()array_column()

$result = array_combine(array_column($array, 'id'), array_values($array));

相关问题