【发布时间】: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 是该数组中唯一的最小值。
【问题讨论】:
我有一个这样的数组:
$a[0] = 2;
$a[1] = 7;
$a[2] = 5;
$a[3] = 2;
$a[4] = 2;
$a[5] = 3;
我想获取此数组中最小值的随机索引。
在上面的数组中,函数应该返回 0 或 3 或 4,因为 2 是该数组中唯一的最小值。
【问题讨论】:
<?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)];
【讨论】:
您可以使用array_keys 和array_flip、array_rand、min 函数
echo array_rand(array_flip(array_keys ($a, min($a))));
现场示例:-https://3v4l.org/b4La1
【讨论】: