使用php随机化数组

时间:2012-07-09 09:06:02

标签: php multidimensional-array

我需要使用PHP重新排列follow数组的顺序,我尝试使用数组shuffle和array_random但没有运气,有人可以帮我吗

Array (
  [0] => Array (
    [value] => 4
    [label] => GasGas
  )
  [1] => Array (
    [value] => 3
    [label] => Airoh Helmets
  )
  [2] => Array (
    [value] => 12
    [label] => XCiting Trials Wear
  )
  [3] => Array (
    [value] => 11
    [label] => Hebo Trials
  )
  [4] => Array (
    [value] => 10
    [label] => Jitsie Products
  )
  [5] => Array (
    [value] => 9
    [label] => Diadora Boots
  )
  [6] => Array (
    [value] => 8
    [label] => S3 Performance
  )
  [7] => Array (
    [value] => 7
    [label] => Scorpa
  )
  [8] => Array (
    [value] => 6
    [label] => Inspired
  )
  [9] => Array (
    [value] => 5
    [label] => Oset
  )
) 

2 个答案:

答案 0 :(得分:4)

$array = array(1,2,3,4,5,6,7);
shuffle($array);
print_r($array);

答案 1 :(得分:2)

你可以得到一个随机的数组索引序列,我想它可以让你解决问题;)

  


//返回随机非重复数字数组   
// PARAMS:   
// $ fromto - 如果$ to为null,则interval为[0,$ fromto],其他地方[$ fromto,$ to]   
// $ to - 间隔结束。   
// $ limit - 限制数量。注意! if $ limit< size([$ fromto,$ to])并非所有来自区间[$ fromto,$ to]的数字都将返回   
功能 rand_seq($ fromto,$ to = null,$ limit = null){
  
如果(is_null($到)){   
$ to = $ fromto;   
$ fromto = 0; }
  
if(is_null($ limit)){   
$ limit = $ to- $ fromto + 1;
  
}   
$ randArr = array();
  
for($ i = $ fromto; $ i< = $ to; $ i ++){   
$ randArr [] = $ i;
  
}   
$ result = array();
  
for($ i = 0; $ i< $ limit || sizeof($ randArr)> 0; $ i ++){   
$ index = mt_rand(0,sizeof($ randArr)-1); //选择rand index /выбираемслучайныйиндексмассива   
$ result [] = $ randArr [$ index]; //添加随机元素/добавляемслучайныйэлементмассива   
array_splice($ randArr,$ index,1); //删除它=)/удаляемего=)
  
}   
返回$ result;   
}