Синтаксис array_rand
, гласит: array_rand ( array input [, int num_req] )
, где num_req
- количество выбираемых значений.
Тогда почему при установке параметра num_reg
в значение 1, рандом перестаёт работать?
Т.е. пример №1:
$input = array(1,2,3,4,5,6,7,8,9,10,11,12,13);
$rnd_key = array_rand($input, 1); // вот тут поставим "1" (в нём-от и загвоздка)
$rnd = $input[$rnd_key[0]]; // тут ни чего не получим(!)
пример №2
$input = array(1,2,3,4,5,6,7,8,9,10,11,12,13);
$rnd_key = array_rand($input, 2); // тут ставим 2 и всё начинает работать.
$rnd = $input[$rnd_key[0]]; // тут получим нужное нам, выбранное рандомно, значение.
$rnd_2 = $input[$rnd_key[1]]; // тут ещё можем получить и второе значение, которое нам, допустим, и не нужно даже.
Вопрос: почему первый пример не работает?
Проверьте в первом примере - действительно ли полученный $rnd_key содержит МАССИВ, а не скалярное значение (если второй параметр опустить - возвращается именно скаляр).
Для того, чтобы всегда получать массив, воспользуйтесь советом qeremy из usernotes к документации
And example for getting random value from assoc arrays
<?php
function array_random_assoc($arr, $num = 1) {
$keys = array_keys($arr);
shuffle($keys);
$r = array();
for ($i = 0; $i < $num; $i++) {
$r[$keys[$i]] = $arr[$keys[$i]];
}
return $r;
}
$a = array("a" => "apple", "b" => "banana", "c" => "cherry");
print_r(array_random_assoc($a));
print_r(array_random_assoc($a, 2));
?>
Output
Array
(
[c] => cherry
)
Array
(
[a] => apple
[b] => banana
)
Если вы выбираете только одно значение, функция array_rand() возвращает ключ, соответствующий этому значению.
В обратном случае, она возвращает массив ключей, соответствующих случайным значениям.
Пример для одного числа https://eval.in/754748 и для двух https://eval.in/754750
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Здравствуйте, внутри класса есть задание конфига:
Начал разбираться с ООП php, а именно с архитектурой MVCВозник вопрос по подключению к бд
Вопрос: при заполнении полей формы, срабатывает условие в form_processingphp и выводится значение переменных, а при отправке пустых полей - все равно...
Подскажите пожалуйста, во всем проекте появились дополнительные 2 пустые строки, как бы их удалить не в каждом отдельном файле, а во всем проекте...