【问题标题】:How to get random index of minimum values from an array in PHP [duplicate]如何从PHP中的数组中获取最小值的随机索引[重复]
【发布时间】:2019-09-07 09:22:02
【问题描述】:

我有一个这样的数组:

$a[0] = 2;
$a[1] = 7;
$a[2] = 5;
$a[3] = 2;
$a[4] = 2;
$a[5] = 3;

我想获取此数组中最小值的随机索引。
在上面的数组中,函数应该返回 0 或 3 或 4,因为 2 是该数组中唯一的最小值。

【问题讨论】:

    标签: php arrays random


    【解决方案1】:
    <?php
    
    
    $a = [];
    $a[0] = 2;
    $a[1] = 7;
    $a[2] = 5;
    $a[3] = 2;
    $a[4] = 2;
    $a[5] = 3;
    
    
    $min_val = min($a);
    
    $min_indexes = [];
    foreach($a as $i => $val){
        if($val == $min_val) $min_indexes[] = $i;
    }
    
    print_r($min_indexes);
    echo $min_indexes[rand(0,count($min_indexes)-1)];
    

    演示: https://3v4l.org/PXcq4

    首先,从数组中获取min 值。现在,收集所有具有此最小值的索引。现在,使用rand() 从过滤集合的索引中生成随机数。

    【讨论】:

      【解决方案2】:

      您可以使用array_keysarray_fliparray_randmin 函数

      echo array_rand(array_flip(array_keys ($a, min($a))));
      

      现场示例:-https://3v4l.org/b4La1

      【讨论】:

        猜你喜欢
        • 2020-08-07
        • 2012-12-27
        • 2016-09-02
        • 1970-01-01
        • 2014-03-06
        • 2019-10-29
        • 2017-03-29
        • 2019-09-19
        • 1970-01-01
        相关资源
        最近更新 更多