PHP - 无法在foreach循环中按键显示结果

时间:2016-07-15 12:28:08

标签: php arrays

这是我的代码:

$stack = array();
foreach ($quote->getAllItems() as $item) {
       $PID = $item->getProduct()->getId();
        $stack["productid"][] = $PID;
        $QTY = $item->getQty();
        $stack["productqty"][] = $QTY;

}


foreach($stack as $value){
 $ProductId = $value["productid"];
 $ProductQty = $value["productqty"];
 echo "ProductId is: $ProductId - Product QTY is: $ProductQty <br>";
}

我收到两行,因为确切的结果数量是$ProductId,而$ProductQty似乎是空白的。

我的错误在哪里,我无法按键显示结果?

提前致谢!

3 个答案:

答案 0 :(得分:2)

 if(!empty($stack) && count($stack)>0)
 {
     foreach($stack['productid'] as $key=>$value){
         $ProductId = $value;
         $ProductQty = $stack["productqty"][$key];
         echo "ProductId is: $ProductId - Product QTY is: $ProductQty <br>";
     }
 }

使用此代码..

答案 1 :(得分:0)

您只需尝试以下代码

foreach($stack as $value){
     $ProductId = $value[0];
    $ProductQty = $value[1];
    echo "ProductId is: $ProductId - Product QTY is: $ProductQty <br>";
 }

原因是,在第一次迭代中,$value将包含$stack["productid"]的值。因此$value["productid"]将无效。您必须提供索引0。对于$ProductQty,您必须提供索引1

答案 2 :(得分:0)

试试这段代码。它会有所帮助......

foreach ($quote->getAllItems() as $item) {
        $stack[] = array('productid'=>$item->getProduct()->getId(),'productqty'=>$item->getQty());
}

foreach($stack as $value){ 

     $ProductId = $value["productid"];
     $ProductQty = $value["productqty"];
     echo "ProductId is: $ProductId - Product QTY is: $ProductQty <br>";

}