如何从Golang中的一系列随机数中进行选择?

时间:2016-02-12 04:23:22

标签: go

从下面的代码中,当选择(5)作为Perm的参数时,我可以从一组随机数0-4中进行选择。但是我想选择不同范围的随机数,例如6-10。我怎么能这样做?

r := rand.New(rand.NewSource(time.Now().UnixNano()))
i := r.Perm(5)
fmt.Printf("%v\n", i)
fmt.Printf("%d\n", i[0])
fmt.Printf("%d\n", i[1])

2 个答案:

答案 0 :(得分:1)

例如,

package main

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    r := rand.New(rand.NewSource(time.Now().UnixNano()))
    min, max := 6, 10
    p := r.Perm(max - min + 1)
    fmt.Println(p)
    for i := range p {
        p[i] += min
    }
    fmt.Println(p)

    for _, r := range p {
        fmt.Println(r)
    }
}

输出:

[1 2 3 4 0]
[7 8 9 10 6]
7
8
9
10
6

答案 1 :(得分:1)

$list = {  "data": [ { .... }, { ...   }] } // this is the array you have

$idFromFrontEnd = $_GET["id"];

foreach ($list["data"] as $item) {   // iterate over all items
    if ($item["id"] == $idFromFrontEnd) {   // check if id matches
       echo json_decode($item);     // if matches, print this item
    }

}

基于@peterSO提供的答案