我有一个多维数组。
Array
(
[0] => Array
(
[OrderID] => 94
[AccountID] => 1
[UserID] => 1
[OrderStatus] => POSTED
[OrderType] => Buy
[Subtotal] => 231.91
[ExchangeFee] => 5.00
[OrderFee] => 0.00
[TotalFee] => 5.00
[GrandTotal] => 226.91
[Notes] =>
[DateCreated] => 2013-12-11 10:51:27
[OrdersDetail] => Array
(
[0] => Array
(
[OrderDetailID] => 96
[OrderID] => 94
[CurrencyID] => 3
[CheckCurrency] => 1
[TransTypeID] => 4
[Credit] => 300.00
[Rate] => 0.773044
[Debit] => 231.91
[Fee] => 5.00
[LineTotal] => 226.91
[Description] => Australian Dollar
[TransType] => Cash
)
)
)
)
这是由我的模型中的一个函数创建的。然后我在我的控制器中有以下代码。
$this->Data['OrdersArray'] = $this->orders->getOrdersToday('Buy');
我工作得很好。我想要做的是在我看来使用两个foreach语句来解析多数组中的信息以构建信息列表。这就是我认为的。
<tbody>
<? if(isset($OrdersArray) && $OrdersArray){ ?>
<?php foreach ($OrdersArray as $key=>$item):?>
<tr class="<?=alternator('odd','even')?>">
<td><?=$item['OrderID']?></td>
<td><?=$item['OrderStatus']?></td>
<td><?=$item['UserID']?></td>
<td><?=$item['Subtotal']?></td>
<td><?=$item['OrderFee']?></td>
<td><?=$item['GrandTotal']?></td>
</tr>
<?php endforeach;?>
<? } ?>
<? if(isset($OrdersArray) && $OrdersArray){ ?>
<?php foreach ($OrdersArray as $key=>$item):?>
<tr class="<?=alternator('odd','even')?>">
<td><?=$item['Description']?></td>
<td><?=$item['Credit']?></td>
<td><?=$item['Rate']?></td>
</tr>
<?php endforeach;?>
<? } ?>
</tbody>
</table>
我希望在一行中获取所有这些信息,并且我不断收到未定义的索引:错误。所以我想我的问题是我不明白如何正确编写foreach语句,以便循环遍历所有信息。所有帮助非常感谢。
答案 0 :(得分:2)
OrdersDetail 数据。你需要另一个foreach id, OrdersDetail 索引有多个数组。
<tbody>
<? if(isset($OrdersArray) && $OrdersArray){ ?>
<?php foreach ($OrdersArray as $key=>$item):?>
<tr class="<?=alternator('odd','even')?>">
<td><?=$item['OrderID']?></td>
<td><?=$item['OrderStatus']?></td>
<td><?=$item['UserID']?></td>
<td><?=$item['Subtotal']?></td>
<td><?=$item['OrderFee']?></td>
<td><?=$item['GrandTotal']?></td>
</tr>
<? if(isset($item['OrdersDetail'])){ ?>
<?php foreach ($item['OrdersDetail'] as $key2=>$item2):?>
<tr class="<?=alternator('odd','even')?>">
<td><?=$item2['Description']?></td>
<td><?=$item2['Credit']?></td>
<td><?=$item2['Rate']?></td>
</tr>
<?php endforeach;?>
<? } ?>
<?php endforeach;?>
<? } ?>
</tbody>
</table>
答案 1 :(得分:0)
您有一系列订单,并且每个订单上都有一个订单详细信息数组,您可以这样做
<? if(isset($OrdersArray) && $OrdersArray){ ?>
<?php foreach ($OrdersArray as $key=>$item):?>
<tr class="<?=alternator('odd','even')?>">
<td><?=$item['OrderID']?></td>
<td><?=$item['OrderStatus']?></td>
<td><?=$item['UserID']?></td>
<td><?=$item['Subtotal']?></td>
<td><?=$item['OrderFee']?></td>
<td><?=$item['GrandTotal']?></td>
<?php if isset($item['OrdersDetail']){ ?>
<td><table>
<?php foreach($item['OrdersDetail'] as $details){
?><tr>
<td><?=$item['OrderDetailID']?></td>
<td><?=$item['OrderID']?></td>
<td><?=$item['CurrencyID']?></td>
<td><?=$item['CheckCurrency']?></td>
<td><?=$item['TransTypeID']?></td>
<td><?=$item['Credit']?></td>
<td><?=$item['Rate']?></td>
<td><?=$item['Debit']?></td>
<td><?=$item['LineTotal']?></td>
<td><?=$item['Description']?></td>
<td><?=$item['TransType']?></td>
</tr>
<?php } ?>
</table>
</td>
<?php } ?>
</tr>
<?php endforeach;?>
<? } ?>