ранд числа с массивами в PHP - PullRequest
0 голосов
/ 13 января 2012

Я хочу реализовать случайные числа для массивов, давайте посмотрим, объясню ли я себя по этому поводу:

У меня есть

$array[0] = 'Hello';
$array[1] = 'Good Morning';
$array[2] = 'Good Afternoon';
$array[3] = 'Good Night';
$array[4] = 'Bye';

У меня есть этот способ, потому что мой путьБосс хочет, чтобы все было так, вместо массива (1 => «Привет» и т. д. и т. д. В любом случае, я хочу сделать случайные числа в массивах, $ array [random number], используя функциональность rand ('0','99') в качестве примера.

Может быть, так:

$rand1 = rand('0','99');
$array['$rand1'] = 'Hello';

Будет ли это работать? У кого-нибудь есть идея получше или, пожалуйста, помогите мне найти солютон для этого?

Спасибо

Ответы [ 4 ]

3 голосов
/ 13 января 2012

Будет ли это работать?

Нет.Случайный! = Уникальный.Если одно и то же число создается более одного раза, вы перезапишете существующий элемент массива.

Вы не указали, почему вы этого хотите, но если вы ищете случайный порядок для вашего массива, вы можете использовать shuffle .

Если вам нужно извлечь случайный элемент из массива, вы можете использовать array_rand .

1 голос
/ 13 января 2012

Я думаю, что вы хотите сделать, можно упростить следующим образом:

// this is the same as creating an array: $array[0] = 'Hello'; $array[1] = 'Good Morning';
$array = array('Hello', 'Good Morning', ...etc...);

// array_rand will give you a random "key" from the array
echo $array[array_rand($array, 1)];

Некоторые ресурсы, которые помогут разобраться в этом: array_rand() и Страница PHP по массивам .

0 голосов
/ 13 января 2012

Не переходите к rand (0,99), так как вы столкнетесь с ошибками ..., поскольку длина вашего массива всего 5.

Попробуйте это.

<?php
$array[0] = 'Hello';
$array[1] = 'Good Morning';
$array[2] = 'Good Afternoon';
$array[3] = 'Good Night';
$array[4] = 'Bye';

shuffle($array);

for($i=0;$i<count($array);$i++)
  {
    echo($array[$i]);
    echo("<br>");
  }

?>
0 голосов
/ 13 января 2012

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

...