【问题标题】:i have an array i want to generate randomly on page refresh [duplicate]我有一个要在页面刷新时随机生成的数组[重复]
【发布时间】:2019-07-31 02:42:11
【问题描述】:

我有一个数组示例:

Array
(
[0] => 5c832a3fec3a6
[1] => 5c832a3fdbe90
[2] => 5c832a3fc6335
[3] => 5c832a3fb080d
[4] => 5c832a3f89d5b
)

当我引用我的页面时,我希望得到这样的结果。

第一次推荐

Array
(
[0] => 5c832a3fc6335
[1] => 5c832a3f89d5b
[2] => 5c832a3fec3a6
[3] => 5c832a3fb080d
[4] => 5c832a3fdbe90
)

第二次刷新

Array
(
[0] => 5c832a3fc6335
[1] => 5c832a3fb080d
[2] => 5c832a3f89d5b
[3] => 5c832a3fdbe90
[4] => 5c832a3fec3a6
)

这意味着每次结果中都有新的随机数组。

【问题讨论】:

  • 好的...所以至少尝试一下。
  • 看看shuffle
  • 我试过“shuffle”但没有得到结果。
  • 好吧,向我们展示您的尝试,告诉我们您得到的结果有什么问题以及您期望的结果是什么,然后我们可能会为您提供帮助。目前,您的问题中没有足够的信息能够给您答案。
  • 您的问题似乎不清楚。为什么shuffle() 不是一个理想的解决方案?

标签: php


【解决方案1】:

作为shuffle()的替代品,您还可以使用rand()

$array = [
0 => "5c832a3fec3a6",
1 => "5c832a3fdbe90",
2 => "5c832a3fc6335",
3 => "5c832a3fb080d",
4 => "5c832a3f89d5b",
];

while(!empty($array)){
    $key = rand(0,4);
    if(key_exists($key, $array)){
        $new_order[] = $array[$key];
    }
    unset($array[$key]);
}

var_dump($new_order);

警告

这是一项代价高昂的练习,因此虽然它对于像这样的小型阵列相对无害,但我可能会坚持使用shuffle()

【讨论】:

  • 虽然我给你一个答案是因为我有点想出你想要实现的目标,但最好让 OP 尝试一些东西,如果它不起作用,分享他们尝试过的内容并询问人们在这里帮助他们找出错误的地方。否则 StackOverflow 只会成为人们要求其他人为他们编写代码的地方。
猜你喜欢
  • 2016-03-01
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 2015-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多