Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP面向对象的foreach循环_Php_Mysql_Codeigniter - Fatal编程技术网

PHP面向对象的foreach循环

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] =

我有一个CodeIgniter查询,它返回一个对象数组。我的查询是查询具有相同字段名的多个表。所以我用select给他们取别名。像这样:

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;
    }
}