繁体   English   中英

如何将数组存储到php中的会话变量中

[英]How to store an array into a session variable in php

//从问题表中返回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提前帮助)

分配

$_SESSION['question'] = $que; 

print_r($_SESSION['question'][0]); 会给你第一个问题。

你几乎是正确的,添加到数组时只需要[]

$_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 ,注意&)时,如果编辑引用,则原始值会发生变化。 如果不通过引用使用,它将创建值的副本。 例如:

//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 )

引用速度更快,但如果您在保持原始数组完整的同时修改值,则不会更快。

使用

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM