//从问题表中返回10个问题
$result = mysqli_query($con,"SELECT question FROM questions ORDER BY rand() LIMIT 10' ");
while($row = mysqli_fetch_row($result))
{
$que[]=$row[0];
}
现在我需要将整套$que[]
存储在会话变量中。 (即10个问题)
像这样的东西
$_SESSION['question'] = $que[];
$my_array[] = $_SESSION['question'];
以便$my_array[0]
返回第一个问题,$my_array[1]
会返回第二个问题,就像那样。
(Thanx提前帮助)
答案 0 :(得分:10)
分配
$_SESSION['question'] = $que;
print_r($_SESSION['question'][0]);
会给你第一个问题。
答案 1 :(得分:6)
您几乎是正确的,添加到阵列时只需要[]
。
$_SESSION['question'] = $que;
确保您首先进行会话,如果某个会话尚未存在,则将其置于脚本顶部将启动会话:
if( !isset( $_SESSION ) ) {
session_start();
}
将其拉回来:
$array = $_SESSION['question']; //Assigns session var to $array
print_r($array); //Prints array - Cannot use echo with arrays
最终添加
要迭代数组,通常可以使用for或foreach。对于语句,只有当数组键是增量(0,1,2,3等)而没有任何间隙时才能正常工作。
for( $x = 0, $max = count($array); $x < $max; ++$x ) {
echo $array[$x];
}
foreach( $array as &$value ) {
echo $value;
}
两者都是为了表现而写的。非常重要的是要知道在使用引用(&$value
时,请注意&amp;)如果您编辑引用,则原始值会更改。如果不通过引用使用,它将创建值的副本。例如:
//Sample Array
$array = array( '0' => 5, '1' => 10 );
//By Reference
foreach( $array as &$value ) {
$value += 2; //Add 2 to each value
echo $value; //Echos 7 and 12, respectively
}
print_r( $array ); //Now equals array( '0' => 7, '1' => 12 )
//Normal Method
foreach( $array as $value ) {
$value += 2; //Add 2 to each value
echo $value; //Echos 7 and 12, respectively
}
print_r( $array ); //Still equals array( '0' => 5, '1' => 10 )
引用速度更快,但如果您在保持原始数组完整的同时修改值,则不会更快。
答案 2 :(得分:2)
使用
session_start();
$_SESSION['question'] = $que;
&que = array(an array of your 10m question s);
如果您想在另一个页面上调用它来排列问题,请使用
while (list($key, $value) = each($_SESSION)) {
#Echo the questions using $key
echo "Here is a list of your questions";
echo "<br/>";
while (list($key2, $value2) = each($_SESSION)) {
#$value2 show's name for the indicated ID
#$key2 refers to the ID
echo "<br/>";
echo "Question: ".$value2." ";
echo "<br/>";
}
echo "<br/>";
}
或者您也可以使用
print_r;