问答详情
源自:3-10 PHP标量类型—字符串(2)

while循环练习

随机从0~9中抽取6个数字(循环,每次抽取一个), 使用这些数字拼接一个字符串

且这6个数字不能是重复数字.

例如 546897 

结束后, 输出循环的次数 和 最终拼接出的数字


提问者:qq_寺之腊侯_0 2017-06-18 09:43

个回答

  • 何明洋洋洋
    2017-06-18 13:04:15

    <?php 
    function get_rand_arr($total_count,$get_count){
    if($total_count<1 or $get_count<1){
    exit('非法个数!');
    }
    if($total_count<$get_count){
    exit('取出元素个数不能大于总数!');
    }
    $source_arr = array();
    for($i=0;$i<$total_count;$i++){
    array_push($source_arr,$i);
    }
    $result_arr = array();
    if($get_count>$total_count/2){
    $return_arr = &$source_arr;
    }else{
    $return_arr = &$result_arr;
    }
    $get_count = min($get_count,$total_count-$get_count);
    while(count($result_arr)<$get_count){
    $rand_num = mt_rand(0,count($source_arr)-1);
    array_push($result_arr,$source_arr[$rand_num]);
    array_splice($source_arr,$rand_num,1,array());
    }
    return $return_arr;
    }


    $result = get_rand_arr(10,6);
    var_dump($result);
    ?>