我正在尝试找出从该数组中选择大于零的随机键的最干净,最简单的方法.最终,我遍历数组,每个循环从随机键中减去一个值
伪代码:
$num_array = array(100,50,60,40,0,30,0,20);
for ($x = 0; $x < 100; $x++) {
$rnd = RANDOM $num_array KEY WHERE > 0
$num_array[$rnd] = $num_array[$rnd] - 10;
}
有关如何处理此问题的任何建议?
编辑:循环结束后,我仍然希望我的数组包含0(原始值,以及减法后的任何新值),并且所有键位置都必须像以前一样完整
解决方法:
第一个:简单的套用array_filter它将过滤掉数组中的零
第二:应用array_rand函数
<?PHP
$nums = [70, 100, 40, 30, 0, 45, 10];
$new_nums = array_filter($nums);
$key = array_rand($new_nums , 1);
echo $new_nums [$key];
?>