Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中的For循环中使用多维数组_Php_Loops_For Loop - Fatal编程技术网

在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>';
    }
}
// ...