PHP объектно-ориентированный цикл foreach - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть запрос CodeIgniter, который возвращает массив объектов.Мой запрос запрашивает несколько таблиц, которые имеют одинаковое имя поля.Поэтому я использую select, чтобы дать им псевдонимы.Вот так:

SELECT t1.platform_brief b1, t2.platform_brief b2

, где t1 и t2 - мои две таблицы.Мой массив, когда print_r'd возвращает объекты, подобные этому:

Array
(
    [0] => stdClass Object
        (
            [b1] => Lorem ipsum
            [b2] => 
        )

    [1] => stdClass Object
        (
            [b1] => 
            [b2] => Sic dolor sit
        )

)

На моем foreach, когда я их отображаю, как мне это сделать?Я пытался что-то вроде этого, но это не сработало:

<?php foreach ($lasers as $laser) {
echo $laser->?
?>

Что поставить вместо знака вопроса?

РЕДАКТИРОВАТЬ:

Вот мой CIзапрос:

$this->db->select('ils1.platform_brief b1, ils2.platform_brief b2');
$this->db->where('ils1.language', $lang);
$this->db->or_where('ils2.language', $lang);
$this->db->join('all_platform_ils975 ils2', 'ils2.laser_id = c.laser_id', 'left');
$this->db->join('all_platform_ils1275 ils1', 'ils1.laser_id = c.laser_id', 'left');
$this->db->join('all_lasers l', 'l.laser_id = c.laser_id', 'inner');
return $this->db->get($lang . '_configure_lasers c')->result();

Ответы [ 2 ]

2 голосов
/ 22 сентября 2011

Судя по вашему последующему комментарию, звучит так, будто вы хотите вывести все поля b1 для каждого результата, а затем все поля b2. В одну сторону:

foreach( array('b1', 'b2') as $fields ) {
    foreach( $lasers as $laser ) {
        echo $laser->$field, '<br>';
    }
}
0 голосов
/ 22 сентября 2011

Вы можете перебирать каждый объект:

foreach ($lasers as $laser) {
    foreach($laser as $field) {
        if(!empty($field)) echo $field;
    }
}

Однако вместо этого вам следует изменить дизайн базы данных / дизайн запросов, чтобы лучше соответствовать вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...