所以我有以下的PHP脚本中加入随机矩阵一起,以创建一个测验动态类型的问题:PHP使用会话变量多维数组
<?php
$min = 0;
$max = 10;
$a1 = rand($min, $max);
$b1 = rand($min, $max);
$c1 = rand($min, $max);
$d1 = rand($min, $max);
$a2 = rand($min, $max);
$b2 = rand($min, $max);
$c2 = rand($min, $max);
$d2 = rand($min, $max);
$matrixa = array(
array($a1,$b1),
array($c1, $d1)
);
$matrixb = array(
array($a2,$b2),
array($c2, $d2)
);
for ($i=0; $i<2; $i++){
for ($j=0; $j<2; $j++){
$matresult[$i][$j] = $matrixa[$i][$j] + $matrixb[$i][$j];
echo $matresult[$i][$j] . ' ';
}
echo '<br>';
}
var_dump($matresult);
?>
这工作,并将正确的值使得输出如下:
16 4
4 8
array(2) { [0]=> array(2) { [0]=> int(16) [1]=> int(4) } [1]=> array(2) { [0]=> int(4) [1]=> int(8) } }
(例如)
现在,当我尝试使用内的同一会话变量的for循环:
for ($i=0; $i<2; $i++){
for ($j=0; $j<2; $j++){
$_SESSION['matresult[$i][$j'] = $matrixa[$i][$j] + $matrixb[$i][$j];
echo $_SESSION['matresult[$i][$j]'] . ' ';
}
echo '<br>';
}
var_dump($_SESSION['matresult']);
的输出提供了以下:
16 4
4 8
NULL
我不明白为什么会这样,代码和逻辑是完全一样的,你有什么我错过了什么?
'$ _SESSION ['matresult [$ i] [$ j']'????? //// –
[我可以在PHP的SESSION数组中使用array \ _push吗?](http ://stackoverflow.com/questions/2616540/can-i-use-array-push-on-a-session-array-in-php) –
你有一个错字。 '$ _SESSION ['matresult [$ i] [$ j']'是错误的,你需要关闭最后的数组键']'。另外,'mt_rand'比'rand'更随机:-) – Martin