说我有5个变量:
$a=2
$b=0
$c=7
$d=0
$e=3
我想随机选择一个非零的变量,用它做一些事情,然后将选择的变量设置为零。
请注意,我想知道选择了哪个变量,例如,如果我得到7,我也想知道它的$ c,以便我可以在阅读后更改其值。
最简单的方法是什么?
我在考虑先将所有变量随机化,然后检查它是否为0,但如果我有更多的变量和更多的零,它就不能很好地扩展。
答案 0 :(得分:1)
首先,我建议制作一个包含所有目标值的数组。然后,您可以使用 array_filter()
过滤掉零值。然后使用 array_rand()
从过滤后的数组中选择一个随机索引。
然后,您可以为$filtered_array[$random_index]
分配一个随机的非零值,您可以将其自由分配给一个自变量,或者回显给DOM。
<?php
$a = 2;
$b = 0;
$c = 7;
$d = 0;
$e = 3;
$array = [$a, $b, $c, $d, $e];
$filtered_array = array_filter($array);
$random_index = array_rand($filtered_array);
echo $filtered_array[$random_index]; // 2, 7 or 3
可以看到 here 。
希望这有帮助! :)
答案 1 :(得分:1)
$a=2;
$b=0;
$c=7;
$d=0;
$e=3;
$array = array($a, $b, $c, $d, $e);
$array = array_filter($array, function($a) { return ($a !== 0); });
echo $array[array_rand($array)];
答案 2 :(得分:1)
应用递归函数
$outbound/ctx:transport/ctx:request