dsf6281 2014-07-24 07:28
浏览 40
已采纳

多维数组循环不显示对象的结果

I am getting the result from the SOAP client as an response. I just have to analyze the structure of the parameter and display the results accordingly. I have the following srucutre for SerialEquipment and i am getting the results peoperly for all the parameters except the Esaco parameter. The Esaco parameter is an array object and it resides inside the SerialEquipment array. I am trying to fetch the response from Esaco array object but getting an error as Invalid arguments supplied for foreach. I am not understanding how to get the results for Esaco Parameter by looping properly.Just a small mistake i am doing in looping the array.

Code:

foreach($Serial as $key => $obj)
   {
        echo "<b>"."Serial Equipment=>" . $key . "</b>"."<br>";
        echo "Code=>". $obj->Code . "<br>";
        echo "Desc Short=>". $obj->Desc_Short . "<br>";
        echo "Desc Long=>". $obj->Desc_Long . "<br>";


        foreach($obj->Esaco as $key2 => $obj2)  
        {  
            if($obj2 === null){
        // doesn't contain Esaco
        break;
            }
            else{
              echo "<b>"."Esaco=>" . $key2 . "</b>"."<br>";                 
            echo "EsacoMainGroupCode=>". $obj2->EsacoMainGroupCode . "<br>";
            echo "EsacoMainGroupDesc=>". $obj2->EsacoMainGroupDesc . "<br>";
            echo "EsacoSubGroupCode=>".  $obj2->EsacoSubGroupCode . "<br>";
            echo "EsacoSubGroupCode=>".  $obj2->EsacoSubGroupDesc . "<br>";
            echo "EsacoSubGroupCode=>".  $obj2->EsacoGroupCode . "<br>";
            echo "EsacoSubGroupCode=>".  $obj2->EsacoGroupDesc . "<br>";  
        }       
        }           
     }      

if($parameter['aktion'] == 'getVehicle') 
{   
     $vehicle = getVehicleValuation();
     $Serial=$vehicle['SerialEquipment'];        
     $VehicleFuel=$vehicle['VehicleFuel'];

        foreach($VehicleFuel as $key => $obj2)
        {           
            echo "Fuel Type=>". $obj2->Fuel_Type . "<br>";
            echo "Fuel Type Code=>". $obj2->Fuel_Type_Code . "<br>";
            echo "ECE_Unit=>". $obj2->ECE_Unit . "<br>"; 
            echo "ECE_In=>". $obj2->ECE_In . "<br>";     
            echo "ECE_Out=>". $obj2->ECE_Out . "<br>";
            echo "ECE_All=>". $obj2->ECE_All . "<br>";
            echo "ECE_CO2=>". $obj2->ECE_CO2 . "<br>";                       
        }   
}

This is my structure for SerialEquipment: enter image description here

  • 写回答

2条回答 默认 最新

  • douyiji3919 2014-07-24 07:43
    关注
    if($parameter['aktion'] == 'getVehicle') 
    {
        $vehicle = getVehicleValuation();
        if(($serials = $vehicle['SerialEquipment']) === null){
            // doesn't contain SerialEquipment
            break;
        }
    
        foreach($serials as $serial){
            print "Code =>" . $serial->Code . "<br>";
            print "Desc Short =>" . $serial->Desc_Short . "<br>";
    
            //...
    
            foreach($serial->Esaco as $esaco){
                print "EsacoMainGroupCode =>" . $esaco->EsacoMainGroupCode. "<br>";
                print "EsacoMainGroupDesc =>" . $esaco->EsacoMainGroupDesc. "<br>";
    
                //...
            }
        }
    }  
    

    And for the VehicleFuel:

    if($parameter['aktion'] == 'getVehicle') 
    {   
     $vehicle = getVehicleValuation();
     $Serial=$vehicle['SerialEquipment'];        
     $VehicleFuel=$vehicle['VehicleFuel'];
    
     $fuelType = $VehicleFuel->Fuel_Type;
    
     // if there is only going to be one VehicleFuel object Vehicle, then just do..
     echo "Fuel Type =>". fuelType->Fuel_Type . "<br>";
     echo "Fuel Type Code =>". $fuelType->Fuel_Type_Code . "<br>";
    
     // if there will be more than one, you will want to use a loop...
    
        foreach($fuelType as $obj)
        {           
            echo "Fuel Type=>". $obj->Fuel_Type . "<br>";
            echo "Fuel Type Code=>". $obj->Fuel_Type_Code . "<br>";
            echo "ECE_Unit=>". $obj->ECE_Unit . "<br>"; 
            echo "ECE_In=>". $obj->ECE_In . "<br>";     
            echo "ECE_Out=>". $obj->ECE_Out . "<br>";
            echo "ECE_All=>". $obj->ECE_All . "<br>";
            echo "ECE_CO2=>". $obj->ECE_CO2 . "<br>";                       
        }   
    } 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源