I got the follwing array and I would like to retrieve the name by the id:
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:
<?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:
array ( 1 => 'Rolf', 3 => 'Gary', 2 => 'Jimmy', )Gary