2016-11-22 2 views
0

Мне нужно переупорядочить массив случайным образом, но я не уверен, что лучший/самый чистый/самый быстрый способ сделать это.PHP переупорядочивает массив случайным образом

Так что я пытаюсь достичь, это следующее. Скажем, у меня есть массив, который выглядит следующим образом:

$array = array(4, 4, 4, 4, 6, 6, 6, 6, 8, 8, 10, 10, 20, 40, 60); 

Моя цель состоит в том, чтобы получить что-то подобное, но в случайном порядке:

$array = array(6, 4, 4, 10, 4, 6, 4, 6, 60, 6, 8, 6, 10, 40, 8, 20); 

Вот что я пытался, но это не кажется работать в качестве предназначенных:

$array = array(4, 4, 4, 4, 6, 6, 6, 6, 8, 8, 10, 10, 20, 40, 60); 
$newArray = array(); 

$randomNumber = rand(0 , 14); 

for ($x = 0; $x <= 15; $x++) { 
    $newArray[$x] = $array[$randomNumber]; 
} 

Большое спасибо заранее всем, кто может помочь мне :)

+5

['shuffle ($ array)'] (http://php.net/shuffle). – Darren

+0

@ Даррен. Все ли так просто? Я пытаюсь построить что-то на PHP, что я создал на C#, и это было намного сложнее в C# lol :) –

+0

Ха-ха, это действительно, вы просто запускаете эту функцию, и она будет перетасовывать текущий массив :) – Darren

ответ

2
$array = array(4, 4, 4, 4, 6, 6, 6, 6, 8, 8, 10, 10, 20, 40, 60); 

Проверьте вывод предыдущего массива

echo "<pre>"; 
print_r($array); 
echo "</pre>"; 

шаркая предыдущий массив & проверки вывода снова.

shuffle($array); 
print_r($array); 

Теперь запускаем цикл Еогеасп как

foreach($array as $item){ 
    echo $item; 
} 

Примечание: Вам не нужно хранить данные воспроизведения в случайном порядке в новый массив.