一维数组怎么随机提取3个值并且保留键值要最效率最简单的还有问个附加小问题 怎么随机打乱一个一维数组 并且键值不变

解决方案 »

  1.   

    首先要看你这个数组的count是多少然后产生0到count之间三个不同的key取出值
    至于第二个问题 你可以通过改变key来实现
      

  2.   

    <?php
    function kshuffle(&$array) {
    if(!is_array($array) || empty($array)) {
    return false;
    }
    $tmp = array();
    foreach($array as $key => $value) {
    $tmp[] = array('k' => $key, 'v' => $value);
    }
    shuffle($tmp);
    $array = array();
    foreach($tmp as $entry) {
    $array[$entry['k']] = $entry['v'];
    }
    return true;
    }
      

  3.   

    $ar = array(1,2,3,4,5,6);//问一
    $r = array();
    foreach(array_rand($ar, 3) as $k) $r[$k] = $ar[$k];
    print_r($r);//问二
    $r = array();
    $t = array_keys($ar);
    shuffle($t);
    foreach($t as $k) $r[$k]] = $ar[$k];
    print_r($r);
      

  4.   


    我记得好像array_rand   是随机提取的了连着的三个元素..