数组值>“ 0”中随机抽取6个数字

时间:2019-01-31 15:47:10

标签: php arrays

我需要从该数组($ sqla)中随机列出所有大于零的值。到目前为止,我已经测试了几种方法,但是都没有成功。非常感谢您的帮助。 上一个版本是:

  $newnum = array_filter(
    $sqla,
    function ($value) {
        return ($value > "0");
    }
while($k=array_rand($newnum))
{
echo $sqla[$k].", ";

该数组是:

array(66) { [0]=> string(2) „15“ [1]=> string(1) „1“ [2]=> string(1) „0“ [3]=> string(1) „0“ [4]=> string(1) „0“ [5]=> string(1) „0“ [6]=> string(1) „0“ [7]=> string(1) „7“ [8]=> string(1) „0“ [9]=> string(1) „0“ [10]=> string(1) „0“ [11]=> string(1) „0“ [12]=> string(1) „0“ [13]=> string(1) „0“ [14]=> string(1) „0“ [15]=> string(1) „0“ [16]=> string(1) „0“ [17]=> string(1) „0“ [18]=> string(1) „0“ [19]=> string(1) „0“ [20]=> string(1) „0“ [21]=> string(1) „0“ [22]=> string(1) „0“ [23]=> string(1) „0“ [24]=> string(1) „0“ [25]=> string(1) „0“ [26]=> string(1) „0“ [27]=> string(1) „0“ [28]=> string(1) „0“ [29]=> string(1) „0“ [30]=> string(1) „0“ [31]=> string(1) „0“ [32]=> string(1) „0“ [33]=> string(1) „0“ [34]=> string(1) „0“ [35]=> string(1) „0“ [36]=> string(1) „0“ [37]=> string(1) „0“ [38]=> string(1) „0“ [39]=> string(1) „0“ [40]=> string(1) „0“ [41]=> string(1) „0“ [42]=> string(1) „0“ [43]=> string(2) „43“ [44]=> string(1) „0“ [45]=> string(1) „0“ [46]=> string(1) „0“ [47]=> string(1) „0“ [48]=> string(1) „0“ [49]=> string(2) „49“ [50]=> string(1) „0“ [51]=> string(1) „0“ [52]=> string(1) „0“ [53]=> string(1) „0“ [54]=> string(1) „0“ [55]=> string(1) „0“ [56]=> string(1) „0“ [57]=> string(1) „0“ [58]=> string(1) „0“ [59]=> string(1) „0“ [60]=> string(1) „0“ [61]=> string(1) „0“ [62]=> string(1) „0“ [63]=> string(3) „649“ [64]=> string(4) „1000“ [65]=> string(19) „2019-01-30 21:33:41“ }

目标输出为649、7、49、43、1、1000,随机回显。谢谢!

1 个答案:

答案 0 :(得分:1)

使用array_filter删除零值,然后随机排列数组。
使用array_slice提取值,并通过爆破回显它们,以逗号分隔。

$newnum = array_filter($newnum);
shuffle($newnum);
echo implode(", ", array_slice($newnum, 0, 6));