Я работаю над проектом в CodeIgniter 2, и теперь я застрял на самых основных концепциях.
Модель:
Получите массив объектов из моей таблицы, который содержит все строки, соответствующие определенному значению для поля с именем foo
. Может быть одна или несколько совпадающих строк. В данном примере две строки.
public function get_sample($foo)
{
$query = $this->db->get_where('sample_db', array('foo' => $foo));
return $query->result();
}
Контроллер:
Назначьте результаты и сделайте выходные данные доступными для просмотра.
public function view($foo)
{
$data['array'] = $this->sample_model->get_sample($foo);
$this->load->view('view', $data);
}
Просмотр:
echo var_dump($array); // for testing
echo $array[1]->text
var_dump()
из $array
:
array(2) {
[0]=> object(stdClass)#23 (4) {
["id"]=> string(1) "1"
["foo"]=> string(3) "bar"
["number"]=> string(4) "1234"
["text"]=> string(23) "This is content in 1234"
}
[1]=> object(stdClass)#24 (4) {
["id"]=> string(1) "2"
["foo"]=> string(3) "bar"
["number"]=> string(4) "9999"
["text"]=> string(23) "This is content in 9999"
}
}
Визуализированный вывод echo $array[1]->text;
: This is content in 9999
И я понимаю, как все это работает: $array[1]->text
— это содержимое поля text
в объекте-массиве с индексом 1
, мой второй объект.
Однако у меня есть поле с именем number
, и я хочу получить доступ к объекту с определенным number
и получить соответствующее значение text
.
Пример. Как получить значение text
, где number
равно 9999
? Я не могу использовать $array[1]->text
, так как никогда не могу быть уверен в позиции объекта в массиве. Что-то вроде $array['number' => '9999']->text
, но я знаю, что это неправильно. Может быть, мне нужно перебрать массив в поисках совпадения?
Это выглядит так просто, но все, что я пробовал, потерпело неудачу и привело к различным ошибкам PHP. Я изучал руководство по PHP здесь и здесь, но не могу найти ничего о том, что я хочу сделать, или может быть, я просто неправильно применяю то, что читаю. Любое руководство приветствуется.
В дополнение к ответу с использованием лучших практик в соответствии с моделью MVC, я надеюсь получить ссылку на соответствующую страницу в документации, а также указать на любые ошибки в моей формулировке/терминологии выше.
ИЗМЕНИТЬ:
Этот ответ содержит фактический код, который я использовал для решения своей проблемы. Хотя ответ Яги был принят, потому что он направил меня в правильном направлении.