簡體   English   中英

PHP-使用foreach顯示2維數組

[英]PHP - Display 2 dimension array with foreach

我想顯示一個二維數組。 我嘗試使用double foreach做到這一點,但我有點失落。 它返回是我一個空的TD,我不知道為什么。 我正在使用ZendFramework。 我應該使用其他解決方案並離開foreach解決方案,還是只是錯過了什么?

數組(一個數組中有7個數組,列始終相同):

array(7) {
[0]=>
array(11) {
["'01.drplapostej-1'"]=>
string(20) "01. DRP La poste J-1"
["import"]=>
string(1) "0"
["radm_ok"]=>
string(1) "0"
["radm_rejet"]=>
string(1) "0"
["radm_ko"]=>
string(1) "0"
["rpec_ok"]=>
string(1) "0"
["rpec_rejet"]=>
string(1) "0"
["rpec_ko"]=>
string(1) "0"
["factu_ok"]=>
string(1) "0"
["factu_rejet"]=>
string(1) "0"
["factu_ko"]=>
string(1) "0"
}
[1]=>
array(11) {
["'01.drplapostej-1'"]=>
string(20) "02. DRL La poste J-1"
["import"]=>
string(2) "80"
["radm_ok"]=>
string(1) "0"
["radm_rejet"]=>
string(1) "0"
["radm_ko"]=>
string(1) "0"
["rpec_ok"]=>
string(1) "0"
["rpec_rejet"]=>
string(1) "0"
["rpec_ko"]=>
string(1) "0"
["factu_ok"]=>
string(1) "0"
["factu_rejet"]=>
string(1) "0"
["factu_ko"]=>
string(1) "0"
}

我試圖做的是:

<table>
<tr>
<th>01.DRPLAPOSTEJ-1</th>
<th>IMPORT</th> 
<th>RADM_OK</th>
<th>RADM_REJET</th>
<th>RADM_KO</th>
<th>RPEC_OK</th>
<th>RPEC_REJET</th>
<th>RPEC_KO</th>
<th>FACTU_OK</th>
<th>FACTU_REJET</th>
<th>FACTU_KO</th>
</tr>
<?php foreach ($this->suiviprodjours as $value): ?>
  <?php foreach ($value as $key => $val): ?>
<tr>
<td <?php echo $val[$key]["01.DRPLAPOSTEJ-1"].'<br>';  ?></td>
</tr>
<?php endforeach; ?>
<?php endforeach; ?>
</table>

結果 :

在此處輸入圖片說明

您需要像下面一樣申請foreach()

<?php foreach($array as $arr){?>
    <tr>
        <?php foreach($arr as $value){?>
            <td><?php echo $value;?></td>
        <?php } ?>
    </tr>
<?php } ?>

因此完整的代碼將是:

<table>
    <tr>
        <th>01.DRPLAPOSTEJ-1</th>
        <th>IMPORT</th> 
        <th>RADM_OK</th>
        <th>RADM_REJET</th>
        <th>RADM_KO</th>
        <th>RPEC_OK</th>
        <th>RPEC_REJET</th>
        <th>RPEC_KO</th>
        <th>FACTU_OK</th>
        <th>FACTU_REJET</th>
        <th>FACTU_KO</th>
    </tr>
    <?php foreach($array as $arr){?>
        <tr>
            <?php foreach($arr as $value){?>
                <td><?php echo $value;?></td>
            <?php } ?>
        </tr>
    <?php } ?>
</table>

您可以將此代碼段用於動態標頭和數據,

echo "<table>";
$keys = array_keys($arr[0]);
//if you want to make upper cases
$keys = array_map("strtoupper", $keys);
echo "<tr><th>";
echo implode("</th><th>", $keys);
echo "</th></tr>";
foreach ($arr as $key => $value) {
    echo "<tr><td>";
    echo implode("</td><td>", $value);
    echo "</td></tr>";
}
echo "</table>";

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM