9

//从问题表中返回 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]返回第二个问题等等。

(感谢提前帮助)

4

3 回答 3

12

分配

$_SESSION['question'] = $que; 

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

于 2013-08-29T13:36:46.887 回答
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。For 语句只有在您的数组键是递增的(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 )

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

于 2013-08-28T22:13:34.000 回答
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;
于 2014-08-03T12:50:09.420 回答