我有一個這樣的數組:$a[0] = 2;$a[1] = 7;$a[2] = 5;$a[3] = 2;$a[4] = 2;$a[5] = 3;我想獲得此數組中僅最小值的隨機索引。在上面的數組中,函數應該返回 0 或 3 或 4,因為2是該數組中唯一的最小值。
2 回答

慕斯709654
TA貢獻1840條經驗 獲得超5個贊
<?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
首先,從數組中獲取最小值。現在,收集具有此最小值的所有索引。現在,使用rand()從過濾集合的索引生成隨機數。

海綿寶寶撒
TA貢獻1809條經驗 獲得超8個贊
您可以array_keys
使用array_flip
, array_rand
,min
函數
echo array_rand(array_flip(array_keys ($a, min($a))));
現場示例:- https://3v4l.org/b4La1
- 2 回答
- 0 關注
- 200 瀏覽
添加回答
舉報
0/150
提交
取消