Это Array
который я хочу отобразить в HTML table
.
$itemss =array(
array( "name"=>"Blue Pen", "Description"=>"Atlas", "UnitPrice"=>13.50, " AvailableStock "=>200),
array( "name"=>"80 P-Book", "Description"=>"Atlas", "UnitPrice"=>65," AvailableStock "=>100),
array( "name"=>"A4 Paper 500", "Description"=>"Atlas", "UnitPrice"=>500," AvailableStock "=>20),
array( "name"=>"Red Pen", "Description"=>"Atlas", "UnitPrice"=>13.50," AvailableStock "=>256),
array( "name"=>"Back Pen", "Description"=>"Atlas", "UnitPrice"=>13.50," AvailableStock "=>156) );
Результат должен быть таким же в таблице.
Item Name |Description|Unit Price|Available Stock|Stock Value
Blue Pen Atlas 13.50 200 xxxx
Total Stock Value |xxxxxx
И это то, что я сделал до сих пор:
<?php
$itemss =array(
array( "name"=>"Blue Pen", "Description"=>"Atlas","UnitPrice"=>13.50,"AvailableStock"=>200),
array( "name"=>"80 P-Book", "Description"=>"Atlas", "UnitPrice"=>65," AvailableStock"=>100),
array( "name"=>"A4 Paper 500","Description"=>"Atlas","UnitPrice"=>500,"AvailableStock"=>20),
array( "name"=>"Red Pen", "Description"=>"Atlas", "UnitPrice"=>13.50,"AvailableStock"=>256),
array( "name"=>"Back Pen", "Description"=>"Atlas", "UnitPrice"=>13.50,"AvailableStock"=>156) );
?>
<table border="1">
<tr>
<th>Item Name</th>
<th>Description</th>
<th>Unit Price</th>
<th>Available Stock</th>
<th>Stock Value</th>
</tr>
<?php
foreach($itemss as $Rockband)
{
echo '<tr>';
foreach(array_values($Rockband) as $key => $item)
{
echo "<td>$item</td>";
}
echo '</tr>';
}
?>
</table>
<table border="1">
<tr>
<th>Item Name</th>
<th>Description</th>
<th>Unit Price</th>
<th>Available Stock</th>
<th>Stock Value</th>
</tr>
<?php
$TotalStockValue = 0;
foreach($itemss as $Rockband)
{
echo '<tr>';
foreach( $Rockband as $key => $value )
{
echo "<td>$value</td>";
}
$StockValue = ( $Rockband["UnitPrice"] * $Rockband["AvailableStock"] );
echo '<td>' . $StockValue . '</td>';
echo '</tr>';
$TotalStockValue += $StockValue;
}
echo '<tr><td colspan="4">Total Stock Value</td><td>' . $TotalStockValue . '</td></tr>';
?>
</table>
Вы могли бы использовать foreach в массиве, как это, используя функцию list
$total_stock_value = 0;
foreach($itemss as $one_item) {
// map the array values to the variables
list($name, $desc, $price, $stock) = $one_item;
$stock_val = $price * $stock;
$total_stock_value += $stock_val;
echo '<tr><td>' . $name . '</td><td>' . $desc . '</td><td>...</td></tr>';
}
Это должно распечатать тело для таблицы, как вы описали. У вас есть массив массивов. Таким образом, код выше проходит через каждый элемент из $itemss
чтобы прочитать отдельные массивы в $one_item
один за другим, и для каждого из них он перечисляет (или карты, если хотите) значения этой подрегрессии $one_item
в заданные переменные ($name, $desc,...)
. Затем я просто выводя переменные в формате, который вы описали в вопросе.
Редактировать Я видел ваше обновление о Stock Value
и Total Stock Value
поэтому я более точно отредактировал свой ответ.
Ты на правильном пути. Однако вам не нужно использовать array_values
.
<?php
$totalValue= 0;
foreach($itemss as $Rockband)
{
$stockValue = $Rockband["UnitPrice"] * $Rockband["AvailableStock"];
$totalValue += $stockValue;
echo '<tr>';
foreach( $Rockband as $key => $value )
{
echo "<td>$value</td>";
}
echo "<td>$stockValue</td>";
echo '</tr>';
}
echo $totalValue;
?>
Stock Value
, ваши подмассивы содержат только 4 элемента.