Как я выбираю 10 случайных вещей из списка в PHP?

Вы не единственный, задающийся вопросом, что это означает; см. Хаотический блог .

Java “If, класс расширяет этот класс, это должно передать параметр E. Границы E’s параметра для класса, который расширяет этот класс с помощью того же параметра E”.

10
задан SilentGhost 7 August 2009 в 12:28
поделиться

7 ответов

Как выбрать один или несколько случайных элементов из массива в php: http://us3.php.net/manual/en/function.array-rand.php

Как создавать случайные взвешенные элементы:
http://20bits.com/articles/random-weighted-elements-in-php/

16
ответ дан 3 December 2019 в 13:47
поделиться

Вы можете перетасовать массив, а затем выбрать первые десять элементов с помощью array_slice :

shuffle($array);
$tenRandomElements = array_slice($array, 0, 10);
22
ответ дан 3 December 2019 в 13:47
поделиться

Массив массивов в PHP должен быть хорошей стратегией. Вы можете хранить данные для этих массивов любым удобным для вас способом (жестко запрограммированные, XML и т.д.) и размещать их в массивах как таковые:

Array {
    Array (item0) { filename,description, weight,...}
    Array (item1) { filename,description, weight,...}
    Array (item2) { filename,description, weight,...} 
}

Затем вы можете использовать функцию array_rand для случайного удаления элементов из массива. Создание значения веса для каждой записи позволит вам выбрать одну запись вместо другой, используя какую-то стратегию приоритета (например, случайным образом получить 2 элемента из массива, проверить вес, выбрать один с большим весом и заменить другой)

0
ответ дан 3 December 2019 в 13:47
поделиться

Пример №1 Пример array_rand ()

<?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";
?>
3
ответ дан 3 December 2019 в 13:47
поделиться
<?php
$inarray = range(0,100);
shuffle($inarray);
$outarray = array_slice($inarray, 0, 20);
?>
0
ответ дан 3 December 2019 в 13:47
поделиться

Дополнительный вопрос, ответ: Взгляните на Выбор колеса рулетки . На веб-сайте говорится о генетических алгоритмах, но методы выбора надежны и могут применяться к целому ряду идей.

0
ответ дан 3 December 2019 в 13:47
поделиться

У меня есть код, который выполняет то, о чем вы просите. Я храню список спонсорских ссылок в текстовом файле и выбираю их наугад. Но, если я хочу исказить набор, я использую несколько ссылок ;-)

Файл спонсоров:

<a href="http://www.example.com">Example</a>
<a href="http://www.example.com">Example</a>
<a href="http://www.bbc.co.uk">BBC</a>
<a href="http://www.google.com">Google</a>

PHP:

$sponsor_config = 'sponsors.txt';
$trimmed = file($sponsor_config, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$op = array();

$limit = 20; // insurance
$loops = 0;
$needed =  4;
$op[] = '<div id="sponsorship"><!-- start sponsorship -->';
$selected = array();
while ( (count($selected) < $needed) AND ($loops <= $limit)) {
  $choice = rand(0, count($sponsors)-1);
  if(!in_array($sponsors[$choice], $selected)) $selected[] = $sponsors[$choice];
  $loops++;
}

foreach($selected as $k => $selection) {
  $op[] = '<p class="sponsorship bg_'.($k%3+1).'">Click the link below to<br />visit our Site Sponsor:<br />'.$selection.'</p>';
}

$op[] = '</div><!-- end sponsorship -->';
return join("\n",$op)."\n";

V. быстро и вв грязно ... но работает

0
ответ дан 3 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: