Есть массив:
Array
(
[0] => Array
(
[ID] => 40
[NAME] => Пример 1
)
[1] => Array
(
[ID] => 39
[NAME] => Пример 2
)
[2] => Array
(
[ID] => 38
[NAME] => Пример 3
)
)
Необходимо найти элемент массива по ID и и вывести NAME. Каким образом это лучше реализовать?
Если операция поиска одноразовая, то можно использовать варианты поиска, приведенные в других ответах.
Если же вам нужно обращаться ко множеству элементам по ID, то лучше перевести массив к виду ID => name, чего можно добиться простым использованием
$data = array_column($array, 'name', 'id');
print $data[39];
в случае, если у вас там будет не только name и и другие данные, можно дополнительно использовать array_combine:
$data = array_combine(array_column($array, 'id'), $array);
тогда фактически ключи будут заменены на значения ID.
$array исходный массив, $searchId ID который ищите
foreach ($array as $item) {
if ($item['ID'] == $searchId) {
echo $item['NAME'];
break;
}
}
К примеру можно сделать вот так:
$array = array(
array(
'id' => 40,
'name' => 'Пример 1'
),
array(
'id' => 39,
'name' => 'Пример 2'
),
array(
'id' => 38,
'name' => 'Пример 3'
)
);
echo $array[array_search(39, array_column($array, 'id'))]['name']; //Пример 2
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости