随机数组没有给出所需的结果 php(laravel 5.3)



>我有 2 个索引 0 和 1 的数组,当我调用它时,我应该从这些索引中选择随机我的数组是

'schools' => [
    'records' => [
        'students' => [
            'add' => [
            'text 1',
            'text 2'
            ],
        ],
    ],
],

这里我的数组是

trans('app.schools.records.students.add')

它现在同时选择文本 1 和文本 2,所以我在助手中将其 2 传递给我的方法

{{gettitles(trans('app.schools.records.students.add'))}}

我的获取标题方法看起来像

function gettitles ($array){
  $rand_keys = array_rand($array, 2);
  echo $array[$rand_keys[0]] . "n";
  echo $array[$rand_keys[1]] . "n";
}

如果我回显索引 0 它唯一的文本,它总是会同时拾取......但我只想要文本 1 和文本 2 中的一个随机请帮助修复它谢谢

$rand_keys = array_rand($array, 2);

你告诉它返回 2 个元素。2 是要返回的随机元素的数量。将其更改为 1。

$rand_keys = array_rand($array, 1);

http://php.net/manual/en/function.array-rand.php

此代码经过测试并工作:

$myArray = array("test 1", "test2");
gettitles($myArray);
function gettitles ($array){
    $rand_keys = array_rand($array, 1);
    echo $array[$rand_keys] . "n";
}

您选择使用的函数array_rand返回随机元素的键,而不是元素本身的内容。

array_rand函数从数组中选取一个或多个随机条目,并返回随机条目的键。它使用不适合加密目的的伪随机数生成器。因此,而不是 2 通过 1。

function gettitles ($array){
  shuffle($array);
  $rand_keys= array_values($array);
  echo $array[$rand_keys[0]] . "n";
  echo $array[$rand_keys[1]] . "n";
}

它会起作用。

编辑

并使用随机功能的组合array_values它将起作用。

function gettitles ($array){
  shuffle($array);
  $rand_keys= array_values($array);
  echo $array[$rand_keys[0]] . "n";
  echo $array[$rand_keys[1]] . "n";
}

编辑 2

function gettitles ($array){
  shuffle($array);
  $rand_keys= array_values($array);
  echo $rand_keys[0] . "n";
  echo $rand_keys[1] . "n";
}

最新更新