【问题标题】:Random value in php using array_randphp中使用array_rand的随机值
【发布时间】:2019-07-05 13:01:11
【问题描述】:

我有两个值:#FFF & #000

我想随机回应任何人,为此我尝试过:

$color = array('#FFF','#000');
$color = array_rand($color);
$color = $color[$color];
echo $color;

但它不显示任何内容。

【问题讨论】:

  • $color = $color[$color]; 似乎很奇怪。你不认为在某个地方你会用另一个值覆盖一个值吗?

标签: php arrays random


【解决方案1】:

你必须注意两件事,

一,如果你覆盖同名的变量然后,它不会产生你想要的结果。

其次,array_rand()会生成随机密钥

为什么您的代码不起作用,因为您的初始数组是$color

$color = array('#FFF','#000');

在此之后,您将使用array_rand(),它将给出随机密钥

$color = array_rand($color);

现在,您的 $color 已从数组覆盖为整数值。这意味着当您尝试访问 $color[$color] 时,这不会给您任何信息,因为它没有定义或覆盖。

解决方案:只需更改您的变量名特别是数组。使用正确的变量名是一种好方法,这将有助于其他将在您之后从事您工作的人。

示例:

<?php
$colorArray = array('#FFF','#000');
$colorKey = array_rand($colorArray);
$colorName = $colorArray[$colorKey];
echo $colorName;
?>

【讨论】:

    【解决方案2】:

    在其他变量中捕获随机索引,比如说$key

    $color = array('#FFF','#000');
    $key =  array_rand($color);
    echo $color[$key];
    

    注意: array_rand — 从数组中选择一个或多个随机键

    Demo

    【讨论】:

    • 优先考虑我接受了你的答案,但请记住未来的读者我接受了另一个有完整解释的答案!投票赞成
    【解决方案3】:

    您使用array_rand 提出了一个好主意

    array_rand — 从数组中选择一个或多个随机键

    但是您正在覆盖您的数组。 ($color)

    试试吧:

    $arrayRand = array_rand($color);
    $randomColor= $color[$arrayRand];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 2018-03-26
      • 2019-03-20
      • 1970-01-01
      相关资源
      最近更新 更多