Работа с массивом php

Не смог правильно оформить заголовок вопроса, опишу подробно задачу в описании ниже.

Есть выборка с базы данных в виде многомерного массива и записываю его в свойство:

array(4) {
  [0]=>
  array(2) {
    ["id"]=>
    int(1)
    ["value"]=>
    string(7) "default"
  }
  [1]=>
  array(2) {
    ["id"]=>
    int(2)
    ["value"]=>
    string(3) "min"
  }
  [2]=>
    array(2) {
    ["id"]=>
    int(3)
    ["value"]=>
    string(6) "online"
  }
  [3]=>
  array(2) {
    ["id"]=>
    int(4)
    ["value"]=>
    string(7) "offline"
  }
}

Для получения значения с поля value я обращаюсь к номеру элемента массива и потом к полю value, например:

$this->constant[0]['value']

Вопрос:

Как обработать данный массив чтоб обращаться к одному массиву через ID и получать его value? На выходе хочу получать значения в таком виде.

$this->constant[1] и на вывод должен получить строку `default`

Прошу помощи в реализации.


Ответы (3 шт):

Автор решения: Алексей Шиманский
$id = 111;
$neededValue = '';

foreach ($array as $item) { 
    if ($item['id'] === $id) {
        $neededValue = $item['value'];
        break; 
    }
}

$id = 111;
$neededValue = array_filter($array, function($item) use ($id) {
    return $item['id'] === $id;
})['value'];
→ Ссылка
Автор решения: fixer
$newarray = array();
foreach($this->constant as $item){
    $newarray[$item['id']] = $item['value'];
}
→ Ссылка
Автор решения: Дмитрий Березуцкий
$this->constant = array_combine(array_column($this->constant, 'id'), array_column($this->constant, 'value'))

и после обращаешься

$this->constant[id]
→ Ссылка