【发布时间】:2017-02-23 22:14:15
【问题描述】:
所以我将以下 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']?????//// -
你有一个错字。
$_SESSION['matresult[$i][$j']错误,您需要关闭最后的数组键]。此外,mt_rand比rand更随机:-) -
您应该使用双引号,以便在字符串中获得变量插值。您还缺少一个右方括号。
-
为轻微的语法错误道歉,这是创建问题时的拼写错误,我项目中的代码是无语法的。不过感谢提醒。
标签: php arrays session multidimensional-array