Как из массива вывести несколько случайных элементов?

Статус
В этой теме нельзя размещать новые ответы.

Ragger

Постоялец
Регистрация
14 Июн 2008
Сообщения
166
Реакции
186
Как из обычного массива несколько случайных (допустим 5) элементов?
 
PHP:
function get_random_item($arr){
  return $arr[rand(0,count($arr)-1];
}

и эту ф-цию пять раз или сколько угодно раз
 
Спасибо, с выводом разобрался, еще вопрос:
PHP:
$tabletka = "viagra";
$arr = array
(
'all about $tabletka',
'purchase $tabletka',
'buy $tabletka',
'order $tabletka',
'online $tabletka',
);

echo $arr[0];
Выводит all about $tabletka
Почему переменная не подставляется?
 
Спасибо, с выводом разобрался, еще вопрос:
PHP:
$tabletka = "viagra";
$arr = array
(
'all about $tabletka',
'purchase $tabletka',
'buy $tabletka',
'order $tabletka',
'online $tabletka',
);
 
echo $arr[0];
Выводит all about $tabletka
Почему переменная не подставляется?
переменная подставляется только если кавычки двойные, ". либо так 'all about '.$tabletka,
 
  • Заблокирован
  • #6
одинарная ковычка съедает переменные, т.е. она отображает текст такой какой он есть.
 
Спасибо, с выводом разобрался, еще вопрос:
PHP:
$tabletka = "viagra";
$arr = array
(
'all about $tabletka',
'purchase $tabletka',
'buy $tabletka',
'order $tabletka',
'online $tabletka',
);

echo $arr[0];
Выводит all about $tabletka
Почему переменная не подставляется?

Зачем дубли плодить, думаю проще будет

PHP:
$tabletka = "viagra";
$arr = array ('all about', 'purchase', 'buy', 'order', 'online');

echo $arr[0].' '.$tabletka;
 
можно воспользоваться ф-цией eval. в привиденом вами случае значение строчек с двойной кавычкой вычисляются сразу же - это не lazy computing, не ленивые вычисления. что б явно вычислить строчку позже надо воспользоваться ф-цией eval
PHP:
eval('$str="$arr[0]"');
теперь $str будет содержать всё что надо, мы подготовили строчку для интерпретатора в рантайме и вычислили ее, а в массиве $arr естественно строки должны быть в одинарных кавычках, либо знак доллара чтоб был экранирован
 
а еще вроде бы если в строке используется переменная то можно ее переменную в фиг. скобки засунуть
'bla bla {$a} bla ' ...
 
а еще вроде бы если в строке используется переменная то можно ее переменную в фиг. скобки засунуть
'bla bla {$a} bla ' ...
фигурные скобки необходимы кода след символ может быть проинтерпретирован как символ названия переменной, или для обращений по индексу или по полю обьекта ({$var1}_{$var2}, {$arr[0]}, {$obj->field}) тогда использование фигурных скобок обязательно.


$var = 'bla bla {$a} bla ';
print $var; // bla bla bla {$a} bla
$a = 'hello'
eval('$str = "$var"');
print $str; // bla bla bla hello bla


хотя если таблетка установливается один раз то можно остановиться на след легкой имплементации

PHP:
function get_random_string($tabletka){
 
  $arr = array
(
"all about $tabletka", // именно двойные кавычки чтоб каждый раз этот массив инициализировался с новой таблеткой
"purchase $tabletka",
"buy $tabletka",
"order $tabletka",
"online $tabletka",
);

return $arr[array_rand($arr) ];
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху