代码之家  ›  专栏  ›  技术社区  ›  menkes

php-逐键遍历多维数组

  •  0
  • menkes  · 技术社区  · 15 年前

    我有一个SOAP结果集,这个nusoap扩展已经为我变成了一个很好的数组。我确信我可以为我想要的东西划出一条很长的循环路径——但似乎必须有一种更快的方法来循环通过特定的数据元素。下面是数组:

    Array
    (
        [xxxResult] => Array
        (
            [NewDataSet] => Array
            (
                [Table] => Array
                (
                    [0] => Array
                    (
                        [ID] => 472
                        [Name] => abc
                        [Weight] => 0.15
                        [AppID] => 5133356895445
                    )
    
                    [1] => Array
                    (
                        [ID] => 7396
                        [Name] => def
                        [Weight] => 0.11
                        [AppID] => 51348575554
                    )
    
                )
    
            )
    
        )
    
    )
    

    所以我想做的就是简单的循环,这样我得到:

    <tr>
        <td>[ID]</td>
        <td>[Name]</td>
        <td>[Weight]</td>
        <td>[AppID]</td>
    </tr>
    

    …对于每个表行。

    似乎有比[XXXResult][NewDataSet][Table][0][ID]等更快的方法。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Ionuț G. Stan    15 年前

    这样地?

    <?php
    
    $tables = $soapResult['xxxResult']['NewDataSet']['Table'];
    
    foreach ($tables as $table) {
    
    ?>
        <tr>
            <td><?php echo $table['ID']; ?></td>
            <td><?php echo $table['Name']; ?></td>
            <td><?php echo $table['Weight']; ?></td>
            <td><?php echo $table['AppID']; ?></td>
        </tr>
    <?php
    
    }
    
        2
  •  0
  •   Jonas B    15 年前

    像:

     for ($row = 0; $row < 2; $row++){
    echo "<tr>";
    
    for ($col = 0; $col < 4; $col++)
    {
        echo "<td>".$myarray[$row][$col]."</td>";
    }
    
    echo "</tr>";
    

    }

    当然,如果行或列的数量发生更改,则需要获取数组的长度。