PHP随机选择非零变量

时间:2017-10-27 01:24:20

标签: php

说我有5个变量:

$a=2
$b=0
$c=7
$d=0
$e=3

我想随机选择一个非零的变量,用它做一些事情,然后将选择的变量设置为零。

请注意,我想知道选择了哪个变量,例如,如果我得到7,我也想知道它的$ c,以便我可以在阅读后更改其值。

最简单的方法是什么?

我在考虑先将所有变量随机化,然后检查它是否为0,但如果我有更多的变量和更多的零,它就不能很好地扩展。

3 个答案:

答案 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