2

这是基本的东西,但我似乎太初学者了,无法让它发挥作用。在这里,我想以某种方式将我的 100 个阵列放入不同的会话中,但是这样的事情似乎不起作用,我想知道为什么?

for($i=1; $i<=100; $i++) {
    $age = rand(1,100);
    $table[] = $age;
    $_SESSION[$i] = $table[];
    }

稍后我需要能够回显使用 for 循环打印的所有 100 个会话的 $age。如果我再次喜欢那里,它只会说未定义的覆盖并给出所有 100 个 $i 的数量。

for($i=1; $i<=100; $i++) {
    echo $_SESSION[$i];
    }
4

3 回答 3

1
for($i=1; $i<=100; $i++) {
    $age = rand(1,100);
    $ages[] = $age;
}

$_SESSION['ages'] = $ages;

在您的其他脚本中

$ages = $_SESSION['ages'];
foreach($ages as $age) {
    echo $age;
}
于 2013-02-15T20:44:31.653 回答
0

您不能$_SESSION像使用普通数组一样使用它,但事实并非如此。使用时不能使用数字索引$_SESSION。下面的代码完全无效,会引起通知,并可能导致您$_SESSION未按预期填充

// bad code!

$_SESSION[1] = 'foo'; // error
$_SESSION[] = 'bar'; // error
for ($i = 1; $i <= 100; $i++) {
    $_SESSION[$i] = rand(1, 100); // error 100x
}

就像 Bram Gerritsen 在他的回答中建议的那样,我会将代码更改为:

for($i=1; $i<=100; $i++) {
    $age = rand(1,100);
    $ages[] = $age;
}

$_SESSION['ages'] = $ages;

有关更多信息,请查看此 PHP 错误报告

于 2013-02-15T20:49:04.287 回答
0

你可以这样做:

for($i=1; $i<=100; $i++) {
    $age = rand(1,100);
    $table[] = $_SESSION["ages"][$i] = $age;
}
于 2013-02-15T20:47:29.490 回答