Как применить rand () или другую встроенную функцию к массиву, который содержит все строковые элементы, чтобы случайным образом выбрать строку?

У меня есть следующий массив:

$family = array("Amit", "Suresh", "Vinit", "Somesh", "Sagar", "Shriram");

Теперь я хочу случайным образом выбрать имя из вышеуказанного массива.

Как мне это сделать?

Я знаю о функции rand (). Даже я пытался rand($family); но это дало мне предупреждение, как показано ниже:

Предупреждение: rand () ожидает ровно 2 параметра, 1 указан в /var/www/project/index.php в строке 7

Это требует второго аргумента.

Поэтому, пожалуйста, кто-нибудь, помогите мне выбрать строку случайным образом из массива, который содержит все строковые элементы.

Благодарю.

0

Решение

Сначала прочитайте документы, в частности, есть точная функция, которую вы ищете

http://php.net/manual/en/function.array-rand.php

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>
4

Другие решения

Попробуй это

$num = rand(0, count($family)-1);
$family[$num]
1

rand() Функция принимает либо ноль, либо два аргумента. С нулевыми аргументами будет получено псевдослучайное целое число от 0 до getrandmax(), В противном случае он ожидает два целочисленных аргумента min а также max и будет производить псевдослучайное целое число между min а также max включительно.

Как отметил @Yurich, это то, что вы, вероятно, хотите.

$num = rand(0, count($family-1));
$family[$num]

Объяснение: rand(0, count($family-1)) выдаст случайное целое число от 0 до количества элементов в вашем массиве минус один. Этот номер будет сохранен в $num, который впоследствии используется для доступа к массиву по «случайному» индексу.

1

// Count the elements
$count = count($family);
// decrement the count by 1
$count--;
// echo a random item from the array
echo $family[rand(0, $count)];
1

rand () не является хорошим вариантом, и для PHP 7 есть лучший вариант. Увидеть ниже:

$family = array("Amit", "Suresh", "Vinit", "Somesh", "Sagar", "Shriram");

if(version_compare(PHP_VERSION,'7.0.0', '<') ) {
// for PHP < 7
$rand_name = $family[mt_rand(0, count($family) - 1)];
} else {
// for PHP >= 7
$rand_name = $family[random_int(0, count($family) - 1)];
}
1
$num = rand(0, count($family)-1);
$family[$num]
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector