PHP面向对象的foreach循环
我有一个CodeIgniter查询,它返回一个对象数组。我的查询是查询具有相同字段名的多个表。所以我用select给他们取别名。像这样:PHP面向对象的foreach循环,php,mysql,codeigniter,Php,Mysql,Codeigniter,我有一个CodeIgniter查询,它返回一个对象数组。我的查询是查询具有相同字段名的多个表。所以我用select给他们取别名。像这样: SELECT t1.platform_brief b1, t2.platform_brief b2 其中t1和t2是我的两张表。打印时我的数组返回如下对象: Array ( [0] => stdClass Object ( [b1] => Lorem ipsum [b2] =
SELECT t1.platform_brief b1, t2.platform_brief b2
其中t1和t2是我的两张表。打印时我的数组返回如下对象:
Array
(
[0] => stdClass Object
(
[b1] => Lorem ipsum
[b2] =>
)
[1] => stdClass Object
(
[b1] =>
[b2] => Sic dolor sit
)
)
在我的课堂上,当我回应他们时,我该怎么做?我尝试过类似的方法,但没有成功:
<?php foreach ($lasers as $laser) {
echo $laser->?
?>
根据您的后续评论判断,听起来您希望输出每个结果的所有b1字段,然后是所有b2字段。单向: foreach( array('b1', 'b2') as $fields ) { foreach( $lasers as $laser ) { echo $laser->$field, '<br>'; } } foreach(数组('b1','b2')作为$fields){ foreach($激光作为$激光){ 回波$laser->$字段“
”; } } 您可以迭代每个对象:
foreach ($lasers as $laser) {
foreach($laser as $field) {
if(!empty($field)) echo $field;
}
}
但是,您应该更改数据库设计/查询设计,以更好地满足您的需要。这个问题的措辞很糟糕。为什么b1在第一条记录中为空,b2在第二条记录中为空?这两条记录是如何关联的,为什么是两个表,为什么是空字段?这就是我的join组合它们的方式。如何让我的加入者将他们放在同一领域?当我这样做的时候,我只得到最后的结果?这两个表是两个激光器的表,每个表中都有大量的信息。我需要从所有laser表中提取数据,并将其作为一个结果返回。可能是我的join语句造成了问题。$lasers是我查询返回的值。我不能使用数组,因为除了此之外,我还有很多数据要返回。不过还是要谢谢你。我想我需要改变我的问题,但我不知道该怎么做。上面贴着。你有什么建议吗。重新设计表为时已晚。如果无法更改表,请创建“替换”表的视图:我可以查询视图吗?听起来很有希望。是的,这是一张虚拟的桌子。太好了。我要试一试。谢谢你,哈克雷!
foreach ($lasers as $laser) {
foreach($laser as $field) {
if(!empty($field)) echo $field;
}
}