Php 通过foreach循环显示会话数组值

Php 通过foreach循环显示会话数组值,php,session,loops,foreach,Php,Session,Loops,Foreach,我想使用foreach循环显示会话中存储的所有数据。我不能展示它。有人能告诉我如何显示存储值吗。我需要显示每个添加产品的产品ID和信息。这是代码-` <?php session_start(); /* TEMPLATE NAME: Cart Page */ 这个代码总是对我有用,它不是你想要的。。。但它包含一个for循环。 在下面的示例中: -$sys[session_allowed]是一个白名单数组,如果没有,您可以跳过/删除它。 -会话数据可通过$sess[foo1]、$ses

我想使用foreach循环显示会话中存储的所有数据。我不能展示它。有人能告诉我如何显示存储值吗。我需要显示每个添加产品的产品ID和信息。这是代码-`

<?php
session_start();
/*
TEMPLATE NAME: Cart Page
*/



这个代码总是对我有用,它不是你想要的。。。但它包含一个for循环。

在下面的示例中:
-$sys[session_allowed]是一个白名单数组,如果没有,您可以跳过/删除它。
-会话数据可通过$sess[foo1]$sess[foo2]等方式获得。

// create session
session_cache_limiter('private, must-revalidate, post-check=0, pre-check=0');
session_start();

// load values, and encrypt
$enc_data = explode(";", session_encode());
$sess_name = array(); $sess_data = array();
for ($i=0;$i<count($enc_data)-1;$i++)
  {
  $sess_get = explode("|", $enc_data[$i]);
  if (substr($sess_get[1], 0, 2)=="s:")
    {
    $tmp = str_replace("\"", "", strstr($sess_get[1], "\""));
    if (strlen($tmp)!=0 && in_array($sess_get[0], $sys[session_allowed]))
      { $sess_data[$i] = $tmp; $sess_name[$i] = $sess_get[0]; }
    }
  else
    {
    $tmp = substr($sess_get[1], 2);
    if (strlen($tmp)!=0 && in_array($sess_get[0], $sys[session_allowed]))
      { $sess_data[$i] = $tmp; $sess_name[$i] = $sess_get[0]; }
    }
  }
if (count($sess_name)>=1) { $sess = array_combine($sess_name, $sess_data); }
else { $sess = array(); }

// now you can access SESSION data by $sess[blabla1], $sess[blabla2]

// to add to session, use function (max 3 add actions):
function session_add($act1="", $act2="", $act3="")
  {
  global $sess, $_SESSION;
  if (strlen($act1)!=0) { $loc = strpos($act1, "="); $act_a = substr($act1, 0, $loc); $act_b = substr($act1, $loc+1); $_SESSION[$act_a] = $act_b; $sess[$act_a] = $act_b; }
  if (strlen($act2)!=0) { $loc = strpos($act2, "="); $act_a = substr($act2, 0, $loc); $act_b = substr($act2, $loc+1); $_SESSION[$act_a] = $act_b; $sess[$act_a] = $act_b; }
  if (strlen($act3)!=0) { $loc = strpos($act3, "="); $act_a = substr($act3, 0, $loc); $act_b = substr($act3, $loc+1); $_SESSION[$act_a] = $act_b; $sess[$act_a] = $act_b; }
  }

// to remove from session, use function (max 3 delete actions):
function session_rem($act1="", $act2="", $act3="")
  {
  global $sess, $_SESSION;
  if (strlen($act1)!=0) { $_SESSION[$act1] = ""; unset($sess[$act1]); }
  if (strlen($act2)!=0) { $_SESSION[$act2] = ""; unset($sess[$act2]); }
  if (strlen($act3)!=0) { $_SESSION[$act3] = ""; unset($sess[$act3]); }
  }
//创建会话
会话缓存限制器(“专用,必须重新验证,后检查=0,预检查=0”);
会话_start();
//加载值并加密
$enc_data=explode(“;”,session_encode());
$sess_name=array()$sess_数据=数组();
对于($i=0;$i=1){$sess=array\u combine($sess\u name,$sess\u data);}
else{$sess=array();}
//现在,您可以通过$sess[blabla1]、$sess[bla2]访问会话数据
//要添加到会话,请使用函数(最多3个添加操作):
功能会话添加($act1=“”、$act2=“”、$act3=“”)
{
全球$sess,美元会议;
如果(strlen($act1)!=0{$loc=strpos($act1,“=”);$act_a=substr($act1,0,$loc);$act_b=substr($act1,$loc+1);$_SESSION[$act_a]=$act_b;$sess[$act_a]=$act_b;}
如果(strlen($act2)!=0{$loc=strpos($act2,“=”);$act_a=substr($act2,0,$loc);$act_b=substr($act2,$loc+1);$_SESSION[$act_a]=$act_b;$sess[$act_a]=$act_b;}
如果(strlen($act3)!=0{$loc=strpos($act3,“=”);$act_a=substr($act3,0,$loc);$act_b=substr($act3,$loc+1);$_SESSION[$act_a]=$act_b;$sess[$act_a]=$act_b;}
}
//要从会话中删除,请使用函数(最多3个删除操作):
功能会话_rem($act1=“”、$act2=“”、$act3=“”)
{
全球$sess,美元会议;
如果(strlen($act1)!=0{$_会话[$act1]=“unset($sess[$act1]);}
如果(strlen($act2)!=0{$_会话[$act2]=“unset($sess[$act2]);}
如果(strlen($act3)!=0{$_会话[$act3]=“unset($sess[$act3]);}
}

执行
var\u转储($\u会话)
以查看其中的真实内容。@MarcB:请提供更多详细信息好吗?我会受益匪浅。在var_转储($_会话)之后我将做什么?检查转储的内容,看看是否确实有任何购物车数据。我得到了这个。我想我离这里很近。请告诉我如何获取数组(2)中的值“product_id”和“info”;==================================================================数组(3){[“DYN_outskin”]=>string(3)“ten”[“DYN_inskin”]=>string(3)“one”[“cart”]=>array(1){[“2000_facebook”]=>array(2){[“product_id”]=>string(13)“2000_facebook”[“info”=>string(7)“nur1952”}}}@nur:修改问题以添加您的数组,这样对其他人来说就很容易了
// create session
session_cache_limiter('private, must-revalidate, post-check=0, pre-check=0');
session_start();

// load values, and encrypt
$enc_data = explode(";", session_encode());
$sess_name = array(); $sess_data = array();
for ($i=0;$i<count($enc_data)-1;$i++)
  {
  $sess_get = explode("|", $enc_data[$i]);
  if (substr($sess_get[1], 0, 2)=="s:")
    {
    $tmp = str_replace("\"", "", strstr($sess_get[1], "\""));
    if (strlen($tmp)!=0 && in_array($sess_get[0], $sys[session_allowed]))
      { $sess_data[$i] = $tmp; $sess_name[$i] = $sess_get[0]; }
    }
  else
    {
    $tmp = substr($sess_get[1], 2);
    if (strlen($tmp)!=0 && in_array($sess_get[0], $sys[session_allowed]))
      { $sess_data[$i] = $tmp; $sess_name[$i] = $sess_get[0]; }
    }
  }
if (count($sess_name)>=1) { $sess = array_combine($sess_name, $sess_data); }
else { $sess = array(); }

// now you can access SESSION data by $sess[blabla1], $sess[blabla2]

// to add to session, use function (max 3 add actions):
function session_add($act1="", $act2="", $act3="")
  {
  global $sess, $_SESSION;
  if (strlen($act1)!=0) { $loc = strpos($act1, "="); $act_a = substr($act1, 0, $loc); $act_b = substr($act1, $loc+1); $_SESSION[$act_a] = $act_b; $sess[$act_a] = $act_b; }
  if (strlen($act2)!=0) { $loc = strpos($act2, "="); $act_a = substr($act2, 0, $loc); $act_b = substr($act2, $loc+1); $_SESSION[$act_a] = $act_b; $sess[$act_a] = $act_b; }
  if (strlen($act3)!=0) { $loc = strpos($act3, "="); $act_a = substr($act3, 0, $loc); $act_b = substr($act3, $loc+1); $_SESSION[$act_a] = $act_b; $sess[$act_a] = $act_b; }
  }

// to remove from session, use function (max 3 delete actions):
function session_rem($act1="", $act2="", $act3="")
  {
  global $sess, $_SESSION;
  if (strlen($act1)!=0) { $_SESSION[$act1] = ""; unset($sess[$act1]); }
  if (strlen($act2)!=0) { $_SESSION[$act2] = ""; unset($sess[$act2]); }
  if (strlen($act3)!=0) { $_SESSION[$act3] = ""; unset($sess[$act3]); }
  }