在PHP中的For循环中使用多维数组
我有以下多维数组:在PHP中的For循环中使用多维数组,php,loops,for-loop,Php,Loops,For Loop,我有以下多维数组: <? $array = array(0 => 2, 3 => 1, 5 => 1 ); 数组的第一部分是“鞋码”,第二部分是库存中可用的编号 我试图打印出一个表格,列出所有鞋码(即使不在数组中),然后循环提供库存中的“可用数量” 以下是我到目前为止所做的,但是不起作用了: <?php $array = array(0 => 2, 3 => 1, 5 => 1 ); print ('<table>');
<? $array = array(0 => 2, 3 => 1, 5 => 1 );
数组的第一部分是“鞋码”,第二部分是库存中可用的编号
我试图打印出一个表格,列出所有鞋码(即使不在数组中),然后循环提供库存中的“可用数量”
以下是我到目前为止所做的,但是不起作用了:
<?php
$array = array(0 => 2, 3 => 1, 5 => 1 );
print ('<table>');
print ('<thead><tr><th>Shoe Size</th>');
for ($i=3; $i<=12; $i += .50) {
print ('<th>'.$i.'</th>');
}
print('</tr></thead>');
print('<tbody><td>Total</td>');
foreach ($array as $shoe_size=>$number_in_inventory) {
for ($i=3; $i<=12; $i += .50) {
if ($i == $shoe_size) {
print('<td>'.$number_in_inventory.'</td>');
}
else {
print('<td>0</td>');
}
}
}
print("</tbody></table>");
您可以尝试循环遍历所有尺寸,然后针对每个尺寸,使用数组\u key\u exists()检查它是否在数组中。
更改主循环以遍历每个可能的鞋码;如果库存数组($array
)中存在该大小,则打印该值,否则打印零
// ...
print('<tbody><td>Total</td>');
for ($i = 3; $i <= 12; $i += .50) {
if (array_key_exists("$i", $array)) {
print '<td>'.$array["$i"].'</td>';
} else {
print '<td>0</td>';
}
}
// ...
/。。。
打印(“总计”);
对于($i=3;$i感谢您的回复。我收到了以下PHP警告:第一个参数应该是字符串或整数
,因此我尝试将其更改为:如果(array_key_存在('$i',$array)){
,但现在它只显示所有零。知道是什么原因吗?问题是您将混合整数(整数)和字符串(对于一半大小)数组键。至于导致您的特定问题的原因,您在不希望的地方使用单引号。请注意,数组不能将float(例如0.5
)值作为键。
// ...
print('<tbody><td>Total</td>');
for ($i = 3; $i <= 12; $i += .50) {
if (array_key_exists("$i", $array)) {
print '<td>'.$array["$i"].'</td>';
} else {
print '<td>0</td>';
}
}
// ...