Php 在会话变量中循环父数组

Php 在会话变量中循环父数组,php,arrays,multidimensional-array,foreach,session-variables,Php,Arrays,Multidimensional Array,Foreach,Session Variables,在测试代码以了解数组存储到会话变量时如何工作时,我制作了以下存储数组: $id=17; //product #17 $_SESSION['cart']['items'][$id]=array( 'quantity'=>1, 'SKUNumber'=>'GL335-a', 'Name'=>'Widget', 'UnitPrice'=>14.95 ); $id=25; $_SESSION['cart']['items'][$id]=array(

在测试代码以了解数组存储到会话变量时如何工作时,我制作了以下存储数组:

$id=17; //product #17
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>1,
   'SKUNumber'=>'GL335-a',
   'Name'=>'Widget',
   'UnitPrice'=>14.95
);
$id=25; 
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>3,
   'SKUNumber'=>'GL398-c',
   'Name'=>'Mega-Widget',
   'UnitPrice'=>34.95
);
$id=19;
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>1,
   'SKUNumber'=>'GL335-a',
   'Name'=>'Widget',
   'UnitPrice'=>14.95
);
foreach($_SESSION['cart']['items'][25] as $key=>$value) // echo/loop all stored vaules in the item 25 array in session cart
    {
    // and print out the values
    echo $key." | ".$value."<br />";
    }
我对如何在项目级别循环使用Key>值感到困惑:

$id=17; //product #17
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>1,
   'SKUNumber'=>'GL335-a',
   'Name'=>'Widget',
   'UnitPrice'=>14.95
);
$id=25; 
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>3,
   'SKUNumber'=>'GL398-c',
   'Name'=>'Mega-Widget',
   'UnitPrice'=>34.95
);
$id=19;
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>1,
   'SKUNumber'=>'GL335-a',
   'Name'=>'Widget',
   'UnitPrice'=>14.95
);
foreach($_SESSION['cart']['items'][25] as $key=>$value) // echo/loop all stored vaules in the item 25 array in session cart
    {
    // and print out the values
    echo $key." | ".$value."<br />";
    }
foreach($_SESSION['cart']['items'][25]作为$key=>$value)//echo/loop SESSION cart中item 25数组中存储的所有值
{
//并打印出值
回声$key.“|”。$value.“
”; }
正确生成存储在第25项中的数组的1次出现:

$id=17; //product #17
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>1,
   'SKUNumber'=>'GL335-a',
   'Name'=>'Widget',
   'UnitPrice'=>14.95
);
$id=25; 
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>3,
   'SKUNumber'=>'GL398-c',
   'Name'=>'Mega-Widget',
   'UnitPrice'=>34.95
);
$id=19;
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>1,
   'SKUNumber'=>'GL335-a',
   'Name'=>'Widget',
   'UnitPrice'=>14.95
);
foreach($_SESSION['cart']['items'][25] as $key=>$value) // echo/loop all stored vaules in the item 25 array in session cart
    {
    // and print out the values
    echo $key." | ".$value."<br />";
    }
  • 数量| 3
  • SKU编号| GL398-c
  • 名称|巨型小部件
  • 单价| 34.95
但是,当我从代码中删除[25]时,我得到:17 |数组,25 |数组,13 |数组 还有一个警告:“注意:数组到字符串的转换…”

我想制作的是:

$id=17; //product #17
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>1,
   'SKUNumber'=>'GL335-a',
   'Name'=>'Widget',
   'UnitPrice'=>14.95
);
$id=25; 
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>3,
   'SKUNumber'=>'GL398-c',
   'Name'=>'Mega-Widget',
   'UnitPrice'=>34.95
);
$id=19;
$_SESSION['cart']['items'][$id]=array(
   'quantity'=>1,
   'SKUNumber'=>'GL335-a',
   'Name'=>'Widget',
   'UnitPrice'=>14.95
);
foreach($_SESSION['cart']['items'][25] as $key=>$value) // echo/loop all stored vaules in the item 25 array in session cart
    {
    // and print out the values
    echo $key." | ".$value."<br />";
    }
数量:1 | SKU编号:GL335-a |名称:小部件|单价:14.95

数量:3 | SKU编号:GL398-c |名称:Mega Widget |单价:34.95

数量:1 | SKU编号:GL378-b |名称:超级小部件|单价:29.95

我显然是以错误的方式循环结果集,但不确定循环结果集的正确方式,以获得我想要的结果。谢谢您的帮助。

试试

foreach($_SESSION['cart']['items'] as $id=>$arr) {
    foreach ($arr as $key => $value) {
        echo $key.":" .$value." | ";
    }
    echo "<br />";
}
foreach($\u会话['cart']['items']作为$id=>$arr){
foreach($arr作为$key=>$value){
echo$key.:“$value.|”;
}
回声“
”; }

foreach($\u会话['cart']['items']作为$id=>$arr){
echo“数量:$arr['quantity']| SKUNumber:$arr['SKUNumber']|名称:$arr['Name']|单价:$arr['UnitPrice']
”; }
试试

foreach($_SESSION['cart']['items'] as $id=>$arr) {
    foreach ($arr as $key => $value) {
        echo $key.":" .$value." | ";
    }
    echo "<br />";
}
foreach($\u会话['cart']['items']作为$id=>$arr){
foreach($arr作为$key=>$value){
echo$key.:“$value.|”;
}
回声“
”; }

foreach($\u会话['cart']['items']作为$id=>$arr){
echo“数量:$arr['quantity']| SKUNumber:$arr['SKUNumber']|名称:$arr['Name']|单价:$arr['UnitPrice']
”; }
试试

foreach($_SESSION['cart']['items'] as $id=>$arr) {
    foreach ($arr as $key => $value) {
        echo $key.":" .$value." | ";
    }
    echo "<br />";
}
foreach($\u会话['cart']['items']作为$id=>$arr){
foreach($arr作为$key=>$value){
echo$key.:“$value.|”;
}
回声“
”; }

foreach($\u会话['cart']['items']作为$id=>$arr){
echo“数量:$arr['quantity']| SKUNumber:$arr['SKUNumber']|名称:$arr['Name']|单价:$arr['UnitPrice']
”; }
试试

foreach($_SESSION['cart']['items'] as $id=>$arr) {
    foreach ($arr as $key => $value) {
        echo $key.":" .$value." | ";
    }
    echo "<br />";
}
foreach($\u会话['cart']['items']作为$id=>$arr){
foreach($arr作为$key=>$value){
echo$key.:“$value.|”;
}
回声“
”; }

foreach($\u会话['cart']['items']作为$id=>$arr){
echo“数量:$arr['quantity']| SKUNumber:$arr['SKUNumber']|名称:$arr['Name']|单价:$arr['UnitPrice']
”; }
您试图通过回显值来序列化数组,这就是为什么会出现警告和意外结果。尝试将$value作为一个数组处理,而不仅仅是回显它。或者在$value内循环

尝试通过回显该值来序列化数组,这就是为什么会出现警告和意外结果。尝试将$value作为一个数组处理,而不仅仅是回显它。或者在$value内循环

尝试通过回显该值来序列化数组,这就是为什么会出现警告和意外结果。尝试将$value作为一个数组处理,而不仅仅是回显它。或者在$value内循环

尝试通过回显该值来序列化数组,这就是为什么会出现警告和意外结果。尝试将$value作为一个数组处理,而不仅仅是回显它。或者在$value内部循环

谢谢你,我不得不用连接来回送它以通过语法检查,但它确实起了作用:
foreach($\u SESSION['cart']['items']as$arr){echo“quantity:.$arr['quantity']。”;skumber:.$arr['skumnumber']。“;Name:.$arr['Name'.'Name']。”;单价:“$arr['UnitPrice'.
这不起作用,因为在foreach中分配给$arr的值现在是指向另一个数组的id<代码>[17]=>数组(…),[25]=>数组(…),[19]=>数组(…)
。您的代码将回显“数量:| SKUNumber:|名称:|单价:”谢谢,我必须用连接回显才能通过语法检查,但它确实起作用:
foreach($|u SESSION['cart']['items']作为$arr){echo“数量:.$arr['quantity']。“| SKUNumber:.$arr['SKUNumber']。”名称:“.$arr['Name']。”单价:“$arr['UnitPrice'.
”)
这不起作用,因为在foreach中分配给$arr的值现在是指向另一个数组的id<代码>[17]=>数组(…),[25]=>数组(…),[19]=>数组(…)
。您的代码将回显“数量:| SKUNumber:|名称:|单价:”谢谢,我必须用连接回显才能通过语法检查,但它确实起作用:
foreach($|u SESSION['cart']['items']作为$arr){echo“数量:.$arr['quantity']。“| SKUNumber:.$arr['SKUNumber']。”名称:“.$arr['Name']。”单价:“$arr['UnitPrice'.
”)
这不起作用,因为在foreach中分配给$arr的值现在是指向另一个数组的id<代码>[17]=>数组(…),[25]=>数组(…),[19]=>数组(…)
。您的代码将回显“数量:| SKUNumber:|名称:|单价:”谢谢,我必须用连接回显才能通过语法检查,但它确实起作用:
foreach($|u SESSION['cart']['items']作为$arr){echo“数量:.$arr['quantity']。“| SKUNumber:.$arr['SKUNumber']。”名称:“.$arr['Name']。”单价:“$arr['UnitPrice'.
”)
这不起作用,因为在foreach中分配给$arr的值现在是指向另一个数组的id<代码>[17]=>数组(…),[25]=>数组(…),[19]=>数组(…)
。您的代码将回显“数量:| SKUNumber:|名称:|单价:”我假设通过在值内循环,您的意思是在
<?php
    foreach($_SESSION['cart']['items'] as $arr)
    {
        echo "quantity: $arr['quantity'] | SKUNumber: $arr['SKUNumber']: GL378-b | Name: $arr['Name'] | UnitPrice: $arr['UnitPrice']";
    }