Skip to content
Advertisement

Finding value from another one in an array of arrays

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
User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement