2013-06-12 2 views
0

мне нужно 9 уникальных случайных чисел от 0 до 44. Я создаю массив с range для добавления чисел между 0 и 44, а затем я использую shuffle как это:Выберите случайные значения из массива

$buildingIdArray = array(); 
$numbers = range (0, $maxNumberOfBuildings); 
shuffle($numbers); 

Мне нужно некоторое помогите заполнить код. Я хочу выбрать 9 чисел по индексу массивов, должен ли я просто использовать цикл, чтобы получить числа индекса от 0 до 8, или я должен использовать slice для выбора чисел, а затем удалить этот индекс?

Я хочу добавить 9 уникальных чисел в массив $buildingIdArray. Любая идея, как это решить?

ответ

2

array_slice() является хорошим выбором в этом приложении.

$buildingIdArray = array(); 
$numbers = range (0, $maxNumberOfBuildings); 
shuffle($numbers); 
$buildingIdArray=array_slice ($numbers,0,9); 
+0

Спасибо, но у меня есть некоторые проблемы с кодом! Это не работает! Пожалуйста, посмотрите мой другой вопрос: http://stackoverflow.com/questions/17071881/loop-mysql-result –

+0

Я нашел ошибку сейчас! В строке 4 есть «;» отсутствует!!! Я скопировал код выше, и поскольку не было ';' это не сработало! –

+0

Я вижу. Я добавил точку с запятой в конец строки. – IanPudney

1

Если вы выбираете только одну запись, array_rand() возвращает ключ для случайной записи. В противном случае он возвращает массив ключей для случайных записей. Это делается для того, чтобы вы могли выбирать случайные ключи, а также значения из массива.

$rand_key = array_rand($buildingIdArray); 
echo $buildingIdArray[$rand_key] . "\n"; 
1
$buildingIdArray = array(); 
$numbers = range (0, $maxNumberOfBuildings); 
shuffle($numbers); 
for($i=0;$i<9;$i++) { 
    $buildingIdArray[] = $numbers[$i]; 
} 
+1

Должно быть $ buildingIdArray [] = $ number [$ i], массивы php на самом деле не объекты, не так ли? – Deleteman

+0

Да, вы правы. Работаю с объектами весь день сегодня :) – RST

Смежные вопросы