Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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-无法在foreach循环中按键显示结果_Php_Arrays - Fatal编程技术网

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

PHP-无法在foreach循环中按键显示结果,php,arrays,Php,Arrays,这是我的密码: $stack = array(); foreach ($quote->getAllItems() as $item) { $PID = $item->getProduct()->getId(); $stack["productid"][] = $PID; $QTY = $item->getQty(); $stack["productqty"][] = $QTY; } foreach($st

这是我的密码:

$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>";
}
$stack=array();
foreach($quote->getAllItems()作为$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为:$ProductId-产品数量为:$ProductQty
”; }
我收到两行,因为结果的确切数量是,但是
$ProductId
$ProductQty
似乎是空的

我的错误在哪里?为什么我不能按键显示结果


提前谢谢

您只需尝试以下代码

foreach($stack as $value){
     $ProductId = $value[0];
    $ProductQty = $value[1];
    echo "ProductId is: $ProductId - Product QTY is: $ProductQty <br>";
 }
foreach($stack as$value){
$ProductId=$value[0];
$ProductQty=$value[1];
echo“ProductId为:$ProductId-产品数量为:$ProductQty
”; }

原因是,在第一次迭代中,
$value
将包含
$stack[“productid”]
的值。因此,
$value[“productid”]
将不起作用。您必须给出索引
0
。对于
$ProductQty
您必须给出索引
1

,您只需使用下面的代码即可

foreach($stack as $value){
     $ProductId = $value[0];
    $ProductQty = $value[1];
    echo "ProductId is: $ProductId - Product QTY is: $ProductQty <br>";
 }
 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>";
     }
 }
foreach($stack as$value){
$ProductId=$value[0];
$ProductQty=$value[1];
echo“ProductId为:$ProductId-产品数量为:$ProductQty
”; }
原因是,在第一次迭代中,
$value
将包含
$stack[“productid”]
的值。因此,
$value[“productid”]
将不起作用。您必须给出索引
0
。对于
$ProductQty
,如果(!empty($stack)&&count($stack)>0,则必须给出索引
1
 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>";
     }
 }
{ foreach($stack['productid']作为$key=>$value){ $ProductId=$value; $ProductQty=$stack[“ProductQty”][$key]; echo“ProductId为:$ProductId-产品数量为:$ProductQty
”; } }
如果(!empty($stack)&&count($stack)>0,则使用此代码。


{
foreach($stack['productid']作为$key=>$value){
$ProductId=$value;
$ProductQty=$stack[“ProductQty”][$key];
echo“ProductId为:$ProductId-产品数量为:$ProductQty
”; } }

使用此代码。

尝试此代码。这将有助于

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>";

}
foreach($quote->getAllItems()作为$item){
$stack[]=array('productid'=>$item->getProduct()->getId(),'productqty'=>$item->getQty());
}
foreach($stack as$value){
$ProductId=$value[“ProductId”];
$ProductQty=$value[“ProductQty”];
echo“ProductId为:$ProductId-产品数量为:$ProductQty
”; }
试试这段代码。这将有助于

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>";

}
foreach($quote->getAllItems()作为$item){
$stack[]=array('productid'=>$item->getProduct()->getId(),'productqty'=>$item->getQty());
}
foreach($stack as$value){
$ProductId=$value[“ProductId”];
$ProductQty=$value[“ProductQty”];
echo“ProductId为:$ProductId-产品数量为:$ProductQty
”; }
什么是
$stack
的数组结构我已经更新了我的问题。使用此代码:foreach($stack as$key=>$value){}你能做一个完整的答案,这样我就可以测试和标记它吗?请发布你的完整代码并询问
$stack
的数组结构是什么我已经更新了我的问题。使用此代码:foreach($stack as$key=>$value){}请你做一个完整的回答,这样我可以测试和标记它吗?请发布你的完整代码,queryNot working。结果是:
ProductId:30029-产品数量:30030 ProductId:1-产品数量:3
这是不正确的。第一项的数量是1,第二项的数量是3。@TonyStark,
print\r($stack)的结果是什么
?不工作。结果是:
产品ID为:30029-产品数量为:30030产品ID为:1-产品数量为:3
,这是不正确的。第一项的数量为1,第二项的数量为3。@TonyStark,
打印($stack)
??