-3

我需要使用 PHP 重新排列跟随数组的顺序,我尝试使用数组 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
  )
) 
4

2 回答 2

4
$array = array(1,2,3,4,5,6,7);
shuffle($array);
print_r($array);
于 2012-07-09T09:13:00.397 回答
2

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


// 返回随机的非重复数字数组
//params:
//$fromto - 如果 $to 为空,区间将为 [0, $fromto],其他地方为 [$fromto, $to]
//$to - 区间结束。
//$limit - 限制数量。注意!if $limit < size([$fromto, $to]) 并非区间 [$fromto, $to] 中的所有数字都会返回
function rand_seq($fromto, $to = null, $limit = null){

if(is_null( $to)){
$to = $fromto;
$从托 = 0; }

if(is_null($limit)){
$limit = $to-$fromto+1;

}
$randArr = 数组();

for($i=$fromto;$i<=$to;$i++){
$randArr[]=$i;

}
$结果 = 数组();

for($i=0; $i < $limit||sizeof($randArr) > 0; $i++){
$index = mt_rand(0, sizeof($randArr)-1); // 选择 rand 索引 / выбираем случайный индекс массива
$result[] = $randArr[$index]; // 添加随机元素 / добавляем случайный элемент массива
array_splice($randArr, $index, 1); // 删除它=) / удаляем его =)

}

return $result;
}

于 2012-07-09T09:25:12.790 回答