首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中循环遍历stdClass对象

在PHP中循环遍历stdClass对象
EN

Stack Overflow用户
提问于 2019-07-20 12:04:04
回答 1查看 235关注 0票数 0

我有一个名为$result的数组,它包含查询结果。加载视图时,我将varible作为参数传递。我试图以Document_NoDescription数量访问这些值,并将它们显示给用户。

我已经尝试循环遍历数组,并不断地得到这个错误。不能使用stdClass类型的对象作为数组

值$result

代码语言:javascript
复制
Array
(
    [0] => stdClass Object
        (
            [Key] => 40;3P4RAwJ7/0kATQBQAC0AMAAwADAAMgAAAACHIE4=7;38242640;
            [Document_No] => IMP-0002
            [Line_No] => 20000
            [Description] => Pay People
            [Type] => TRAVEL
            [Quantity] => 40
            [Unit_of_Measure] => DAY
            [Unit_Price] => 10
            [Amount] => 400
            [Current_Budget] => 2019/2020
            [Account_Type] => G_L_Account
            [Account_No] => 2210301
            [Budgeted_Amount_GoK] => 0
            [Available_Amount] => 37701.41
            [Actual_Spent] => 0
            [Global_Dimension_1_Code_Name] => TUBERCULOSIS
            [Global_Dimension_2_Code_Name] => OTHER PSM COSTS - TB/HIV
            [Global_Dimension_3_Code_Name] => OTHER PSM COSTS
            [Global_Dimension_4_Code_Name] => TB/HIV
            [Global_Dimension_5_Code_Name] => ENGAGING ALL CARE PROVIDERS (MDR-TB)
            [Global_Dimension_6_Code_Name] => NATIONAL TREASURY OF THE REPUBLIC OF KENYA
            [Global_Dimension_1_Code] => TB
            [Global_Dimension_2_Code] => TB13.1.7
            [Global_Dimension_3_Code] => TB7.7
            [Global_Dimension_4_Code] => TBMODT-003
            [Global_Dimension_5_Code] => TBITVT.0010
            [Global_Dimension_6_Code] => TNT
            [Local_Travel] => 
            [International_Travel] => 
        )

    [1] => stdClass Object
        (
            [Key] => 40;3P4RAwJ7/0kATQBQAC0AMAAwADAAMgAAAACHMHU=7;38333880;
            [Document_No] => IMP-0002
            [Line_No] => 30000
            [Description] => Julius Cesear
            [Type] => TRAVEL
            [Quantity] => 8
            [Unit_of_Measure] => DAY
            [Unit_Price] => 70
            [Amount] => 560
            [Current_Budget] => 2019/2020
            [Account_Type] => G_L_Account
            [Account_No] => 2210301
            [Budgeted_Amount_GoK] => 0
            [Available_Amount] => 37701.41
            [Actual_Spent] => 0
            [Global_Dimension_1_Code_Name] => TUBERCULOSIS
            [Global_Dimension_2_Code_Name] => OTHER PSM COSTS - TB/HIV
            [Global_Dimension_3_Code_Name] => OTHER PSM COSTS
            [Global_Dimension_4_Code_Name] => TB/HIV
            [Global_Dimension_5_Code_Name] => ENGAGING ALL CARE PROVIDERS (MDR-TB)
            [Global_Dimension_6_Code_Name] => NATIONAL TREASURY OF THE REPUBLIC OF KENYA
            [Global_Dimension_1_Code] => TB
            [Global_Dimension_2_Code] => TB13.1.7
            [Global_Dimension_3_Code] => TB7.7
            [Global_Dimension_4_Code] => TBMODT-003
            [Global_Dimension_5_Code] => TBITVT.0010
            [Global_Dimension_6_Code] => TNT
            [Local_Travel] => 
            [International_Travel] => 
        )

)

代码试图访问其中的数据.

代码语言:javascript
复制
<?php  foreach ($result as $lines):
           ?>
            <?php $lineIndex=1;  $count=0; foreach ($lines as $line):

            ?>
      <?php //print_r($lines); exit;?> 
        <div id="lines" class="lines">
            <div id="line" class="line">
                <div class="row">
                <div class="form-group col-lg-2">
                        <input disabled id="description" class="form-control input-group-lg reg_name" type="text"name="quantityinStore[]" value=" <?php if(property_exists($lines[$count], 'Description'))echo $lines[$count]->Description?>" placeholder=""/>
                    </div>

预期结果

我希望这些值出现在字段中,但是我一直在获取以下错误消息:不能使用stdClass类型的对象作为数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-20 15:13:11

您有一个对象数组。每个对象都有可引用的属性。

因此,对于数组$result,可以迭代数组。

代码语言:javascript
复制
foreach($result as $row) {}

然而,每一行都是一个对象;对象的属性被引用如下:$row->Document_No

因此,如果要使用字段Document_NoDescription Quantity打印表,可以这样做:

代码语言:javascript
复制
<?php
// do whatever to get $result

// php logic finished...
?>
<table>
  <tr>
    <th>Document_No</th>
    <th>Line_No</th>
    <th>Description</th>
    <th>Type</th>
    <th>Quantity</th>
  </tr>
  <?php foreach($result as $row): ?>
  <tr>
    <td><?= $row->Document_No ?></td>
    <td><?= $row->Line_No ?></td>
    <td><?= $row->Description?></td>
    <td><?= $row->Type ?></td>
    <td><?= $row->Quantity ?></td>
  </tr>
  <?php endforeach; ?>
</table>

对于一种形式,同样的想法也适用于:

代码语言:javascript
复制
<?php foreach($result as $index => $row): ?>
<input disabled id="description" class="form-control input-group-lg reg_name" name=“description[<?= $index ?>]” value=“<?= $row->Description?>” >


...
<?php endforeach; ?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57124522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档