2013-09-21 3 views
0

У меня есть массив букв, и я хочу выбрать 5 уникальных.PHP - получить 5 уникальных значений из массива

$variable_array = array('x', 'n', 'f', 'w', 'g', 'r', 'c', 'm', 'y', 'u', 'p', 'a', 'd', 'h', 'k', 'z'); 

Итак, я хочу что-то вроде этого ...

$variable_1 = $variable_array[array_rand($variable_array)]; 
$variable_2 = $variable_array[array_rand($variable_array)]; 
$variable_3 = $variable_array[array_rand($variable_array)]; 
$variable_4 = $variable_array[array_rand($variable_array)]; 
$variable_5 = $variable_array[array_rand($variable_array)]; 

но все переменные должны быть уникальными. Я знаю, что уже есть другие ответы, подобные этому в Stackoverflow, но все они немного отличаются от моей ситуации. Есть идеи?

+0

Вы должны выбрать случайный элемент из массива? –

+0

Ну, каждая переменная $ variable_1, $ variable_2 и т. Д. Должна быть уникальной. Итак, мне нужны 5 уникальных элементов. – gtilflm

+0

У вас есть помощник по решению. Это должно работать –

ответ

2

PHP перетасовка(): http://php.net/manual/en/function.shuffle.php

// make sure you have only unique values in your array 
// $variable_array = array_unique($variable_array); 


// randomize array 
shuffle($variable_array); 

// get 5 elements like suggested in the comments: 
// $top5_array = array_slice($variable_array, 0, 5); 
$top5_array = ARRAY(); 

// do 5 times ... 
// 
// if (is_array($variable_array) AND count($variable_array) >=5) { 
// 
for ($i=0; $i<=4; $i++) { 
    $top5_array[] = $variable_array[$i]; 
    print $variable_array[$i].'<br />'; 
} 

var_dump($top5_array); 
+1

http://php.net/manual/en/function.shuffle.php –

+1

array_slice() woud будет лучше, чем ваш цикл –

+0

Может быть, но это всего лишь демонстрация того, как даже получить 5 или один один из разыскиваемых элементов ... так что не моя работа;) – djot

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