PHP无法为每个数组回显

时间:2011-07-22 19:44:26

标签: php list multidimensional-array for-loop foreach

我正在尝试使用每个回显一个数组,但它没有显示任何值。我可以回应的唯一值是每秒内的一秒钟。

谁能告诉我我做错了什么?

我想要回应的是价格,项目,描述等,但我什么也没得到。

如果您需要查看数组的输出,请点击http://operationbraveheart.org.uk/jcart/testshop.php

while ($row = $result->fetch()) { 
    $superitem[$row['itemid']][] = $row;
}
foreach($superitem AS $subitem) {
    list($prodid,$item,$size,$description,$price) = $subitem[0];

    if ($count % NUMCOLS == 0) echo "<tr>";  # new row
    echo '<td>'; 
    var_dump($subitem);
    //Your normal code up until the select box...
    echo '<form method="post" action="" class="jcart">
            <fieldset>
                <input type="hidden" name="jcartToken" value="'.$_SESSION['jcartToken'].'" />
                <input type="hidden" name="my-item-id" value="'.$subitem['prodid'].'" />
                <input type="hidden" name="my-item-price" value="'.$subitem['price'].'" />
                <input type="hidden" name="my-item-url" value="http://yahoo.com" />';

    if(count($subitem) > 1) {

        echo '<li><select name="my-item-name" id="foo">';
        foreach($subitem AS $subsubitem) {
            echo "<option value='".$subsubitem['size']."'>".$subsubitem['size']."</option>";
        }
        echo "</select></li>";
    }
    else {
        echo '<input type="hidden" name="my-item-name" value="'.$subitem['item'].'" />'; 
    }
    echo'<li>Price: $<span class="price">'.$subitem['price'].'</span></li>
                <li>
                    <label>Qty: <input type="text" name="my-item-qty" value="1" size="3" /></label>
                </li>
            </ul>

            <input type="submit" name="my-add-button" value="add to cart" class="button" />
        </fieldset>
    </form>';

    echo '</td>';
    $count++;
    $counter++;

    if ($count % NUMCOLS == 0) echo "</tr>\n";  # end row
}

1 个答案:

答案 0 :(得分:2)

当前看起来$ subitem包含一个长度为1的数组,其中第一个索引是一行。变化...

$superitem[$row['itemid']][] = $row;

应该是......

$superitem[$row['itemid']] = $row;

和...

list($prodid,$item,$size,$description,$price) = $subitem[0];

应该是......

list($prodid,$item,$size,$description,$price) = $subitem;