I got the follwing array and I would like to retrieve the name by the id:
JavaScript
x
Array
(
[0] => Array
(
[id] => 1
[name] => john
)
[1] => Array
(
[id] => 2
[name] => mark
)
etc
It is doable with double foreach loop and a conditional test, but is there a more elegant way?
Advertisement
Answer
You can use array_column to map ids to names:
JavaScript
<?php
$arr = [
['id' => 1, 'name' => 'Rolf'],
['id' => 3, 'name' => 'Gary'],
['id' => 2, 'name' => 'Jimmy'],
];
$id_names = array_column($arr, 'name', 'id');
var_export($id_names);
print $id_names[3];
Output:
JavaScript
array (
1 => 'Rolf',
3 => 'Gary',
2 => 'Jimmy',
)Gary