使用GET变量选择一个数组而不使用IF语句

时间:2011-10-31 03:00:26

标签: php

我正在做一个脚本,涉及从数组中选择一个随机字符串并重定向到它(使用标题)。我想要它,以便使用get变量,它将加载与它相同名称的数组。因此,如果get变量是随机的,那么它将随机加载数组并使用它。

这有意义吗?

我正在使用一个随机的头像脚本,这样它就会获得一个用户名然后选择该用户名的数组,然后选择一个随机的头像URL。

2 个答案:

答案 0 :(得分:0)

PHP支持“变量变量”,因此您可以执行以下操作:

$arrayName = $_GET['username'];
$arr = $$arrayName;

所以,如果您在脚本中定义了一个数组:

$bill = array(1, 2);

$_GET['username']的值为'bill',然后$bill将被$arr复制到上面。

有关详情,请参阅this documentation

答案 1 :(得分:0)

这样的东西?

$avatars = array(
    'alex' => array('avatar1.jpg', 'avatar2.jpg', 'avatar3.jpg'),
    'bob' => array('avatar4.jpg', 'avatar5.jpg', 'avatar6.jpg'),
    'crissa' => array('avatar7.jpg', 'avatar8.jpg', 'avatar9.jpg'),
);

$username = $_GET['username'];

if (isset($avatars[$username])) {
    $avatar = $avatars[$username][mt_rand(0, count($avatars[$username]) - 1)];
    header('Location: ' . $avatar);
}