Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中将数组存储到会话变量中_Php_Mysql_Arrays_Session - Fatal编程技术网

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

如何在php中将数组存储到会话变量中,php,mysql,arrays,session,Php,Mysql,Arrays,Session,//返回问题表中的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[

//返回问题表中的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'];
因此,
$myu数组[0]
返回第一个问题,
$myu数组[1]
返回第二个问题,诸如此类


(Thanx提前获得帮助)

您几乎是正确的,添加到阵列时只需要
[]

$_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;
}
引用速度更快,但如果您计划在保持原始数组不变的情况下修改值,则不会如此。

Assign

$_SESSION['question'] = $que; 
print_r($_SESSION['question'][0])将给您第一个问题。

使用

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/>"; 
}

只需
$\u会话['question']=$que否[]我现在如何访问存储在会话中的那些值?Ohkay没有数组回音!实际上,我希望将此元素打印为$my_数组[0]、$my_数组[1]、$my_数组[2]……$my_数组[10]?如何通过printf使之成为可能?当我试图简单地打印它时,会显示数组到字符串的转换错误!更新了我的答案,除非您对原始问题有异议,否则我认为您可能希望搜索堆栈溢出以获取更多信息,或提出新问题。使用echo代替打印会有任何不同吗?
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;