我有一个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();
答案 0 :(得分:2)
根据您的后续评论判断,您似乎想要输出每个结果的所有b1字段,然后输出所有b2字段。一种方式:
foreach( array('b1', 'b2') as $fields ) { foreach( $lasers as $laser ) { echo $laser->$field, '<br>'; } }
答案 1 :(得分:0)
你可以迭代每个对象:
foreach ($lasers as $laser) {
foreach($laser as $field) {
if(!empty($field)) echo $field;
}
}
但是,您应该更改数据库设计/查询设计以更好地满足您的需求。