如何根据PHP数组的长度声明多个会话变量 session_start(); $imgList=$_请求['imgList']//来自post(jquery) $i=0; $a=爆炸(“,”,$imgList); $abc=计数($a); 对于($e=0;$e

如何根据PHP数组的长度声明多个会话变量 session_start(); $imgList=$_请求['imgList']//来自post(jquery) $i=0; $a=爆炸(“,”,$imgList); $abc=计数($a); 对于($e=0;$e,php,mysql,checkbox,Php,Mysql,Checkbox,我不知道为什么不止一个变量没有初始化。谁能告诉我这个问题或解决这个问题。我非常感谢你的帮助 session_start(); $imgList = $_REQUEST['imgList']; //comes through post (jquery) $i = 0; $a = explode(',', $imgList); $abc = count($a); for ($e = 0; $e < $abc; $e++) { echo $_SESSION['c+$i']=$a[$e];

我不知道为什么不止一个变量没有初始化。谁能告诉我这个问题或解决这个问题。我非常感谢你的帮助

session_start();
$imgList = $_REQUEST['imgList']; //comes through post (jquery)
$i = 0;
$a = explode(',', $imgList); 
$abc = count($a);

for ($e = 0; $e < $abc; $e++)
{
  echo $_SESSION['c+$i']=$a[$e];
  $i++;
}

echo $_SESSION['c+$i']; //this returns the last value
echo count($_SESSION['c+$i']); //returns only length 1
echo count($i); // returns only length 1
请使用“c+$i”而不是“c+$i”


请使用“c+$i”而不是“c+$i”。

正如我在评论中所说,您在
$SESSION
数组键中使用单引号,因此,无论$i的值是多少,它都将始终是
c+$i

您需要使用双引号:

 echo $_SESSION['c+$i']=$a[$e];
或PHP连接运算符:

$_SESSION["c+$i"]=$a[$e];
顺便说一句,这里不需要
echo
,因为
$i
变量是不需要的,因为
$e
已经在0到
$abc
之间变化,并且在每次
迭代中等于
$i


另外,
count($i)
将始终返回
1
,因为
$i
是一个整数。

正如我在评论中所说,您在
$SESSION
数组键中使用单引号,因此无论$i的值是多少,它都将一直是
c+$i

您需要使用双引号:

 echo $_SESSION['c+$i']=$a[$e];
或PHP连接运算符:

$_SESSION["c+$i"]=$a[$e];
顺便说一句,这里不需要
echo
,因为
$i
变量是不需要的,因为
$e
已经在0到
$abc
之间变化,并且在每次
迭代中等于
$i


另外,
count($i)
将始终返回
1
,因为
$i
是一个整数。

完全按照以下方式更改代码:-

$_SESSION['c+' . $i] = $a[$e];
session_start();
$_SESSION = array();
$imgList = $_REQUEST['imgList']; //comes through post (jquery)
$a = explode(',', $imgList); 
$_SESSION['c'][] = $a;
print_r($_SESSION['c']);
现在,在另一页上,如果您需要访问此会话数据,请执行以下操作:-

$_SESSION['c+' . $i] = $a[$e];
session_start();
$_SESSION = array();
$imgList = $_REQUEST['imgList']; //comes through post (jquery)
$a = explode(',', $imgList); 
$_SESSION['c'][] = $a;
print_r($_SESSION['c']);

完全更改代码,如下所示:-

$_SESSION['c+' . $i] = $a[$e];
session_start();
$_SESSION = array();
$imgList = $_REQUEST['imgList']; //comes through post (jquery)
$a = explode(',', $imgList); 
$_SESSION['c'][] = $a;
print_r($_SESSION['c']);
现在,在另一页上,如果您需要访问此会话数据,请执行以下操作:-

$_SESSION['c+' . $i] = $a[$e];
session_start();
$_SESSION = array();
$imgList = $_REQUEST['imgList']; //comes through post (jquery)
$a = explode(',', $imgList); 
$_SESSION['c'][] = $a;
print_r($_SESSION['c']);
session_start();
//更重要的是使用evalutate变量来避免服务器上的日志错误
if(设置($_请求['imgList'])和&!空($_请求['imgList']))
{
//$imgList=$\u请求['imgList'];删除、直接生成、,
//$i=0;删除、优化资源,
$a=分解(“,”,修剪($_请求['imgList'],“,”);//修剪以删除数组中的空位置
//$abc=计数($a);删除、优化资源、释放内存
对于($e=0;$e
会话启动();
//更重要的是使用evalutate变量来避免服务器上的日志错误
if(设置($_请求['imgList'])和&!空($_请求['imgList']))
{
//$imgList=$\u请求['imgList'];删除、直接生成、,
//$i=0;删除、优化资源,
$a=分解(“,”,修剪($_请求['imgList'],“,”);//修剪以删除数组中的空位置
//$abc=计数($a);删除、优化资源、释放内存
对于($e=0;$e
u REQUEST['imgList']
/
$a
的值是多少?您在
$SESSION
数组键中使用单引号,因此,无论
$i
的值是多少,它都将一直是
c+$i
。我建议您阅读。$(“\35;检查”)。单击(函数(){var data=$('input:checkbox:checked')。映射(function(){return this.value;}).get();var dataString=“imgList=”+data;$.post('filter.php',dataString,function(theResponse){alert(theResponse);@roberto06我这样做了,但它没有显示任何结果,并且在会话[]中出现错误
是一个数组。请阅读更多关于以及如何使用它们的信息。也请阅读。关于的部分可以帮助您理解所发布代码中一半的错误。
$\u REQUEST['imgList'的价值是什么
/
$a
?您在
$SESSION
数组键中使用单引号,因此,无论
$i
有什么值,它都将一直是
c+$i
。我建议您阅读。$(“#检查”)。单击(function(){var data=$('input:checkbox')。映射(function(){return this.value;})。get();var dataString=“imgList=”+data;$.post('filter.php',dataString,function(响应){alert(响应);@roberto06我做了,但它没有显示任何结果,并且给出了一个错误