Я изо всех сил пытаюсь обернуть голову вокруг того, что я делаю здесь, но испытываю некоторые трудности ... Любая помощь или направление будут с благодарностью.
Итак, у меня есть некоторые значения в таблице, которую я извлек в соответствии с массивом (блестяще названным $ array), который я предопределил. Вот как я это сделал:
foreach ($array as $value) {
$query = "SELECT * FROM b_table WHERE levelname='$value'";
$result = runquery($query);
$num = mysql_numrows($result);
$i=0;
while ($i < 1) {
$evochance=@mysql_result($result,$i,"evochance"); // These values are integers that will add up to 100. So in one example, $evochance would be 60, 15 and 25 if there were 3 values for the 3 $value that were returned.
$i++;
}
Теперь я не могу понять, куда идти отсюда. $ evochance представляет процентные шансы, которые связаны с каждым значением $.
Скажем, если через какую-то функцию выбран подходящий 60%, он вставит значение $, с которым он связан, в другую таблицу.
Я знаю, что это не поможет, но самое большее, что я придумал, было:
if (mt_rand(1,100)<$evochance) {
$valid = "True";
}
else {
$valid = "False";
}
echo "$value chance: $evochance ($valid)<br />\n"; // Added just to see the output.
Ну, это явно не то, что я ищу. И я не могу иметь динамическое количество процентов с этим методом. Кроме того, иногда выдается False в обоих случаях, а иногда - True в обоих случаях.
Итак, я любитель, изучающий веревки, и я попробовал это. Любое направление приветствуется.
Спасибо =)
** Редактировать 3 (очищено):
@ cdburgess Я прошу прощения за мои слабые объяснения; Я тоже пытаюсь понять это. Надеюсь, вы сможете понять это.
Пример того, что находится в моем массиве: $array = array('one', 'two', 'three')
Хорошо, скажем, в $array
есть 3 значения, как указано выше (хотя при каждом запуске этого сценария не всегда будет 3). Я собираю все записи из таблицы, которые содержат эти значения в определенном поле (называемом 'levelname'). Поскольку эти значения уникальны для каждой записи, она будет извлекать только столько записей, сколько существует значений. Теперь каждая запись в этой таблице имеет поле с именем evochance
. В этом поле находится одно число от 1 до 100. 3 записи, которые я запрашивал ранее (в пределах foreach ()
), будут иметь evochance
чисел, которые в сумме до 100. Функция, которая мне нужна, решает, какую запись я буду использовать на основе число «evochance», которое оно содержит. Если это 99, то я хочу, чтобы он использовался 99% времени выполнения этого скрипта.
ОДНАКО ... Мне не нужна простая функция взвешенного шанса для одного числа. Я хочу, чтобы он выбрал, какой процент = true из n процентов (когда n = количество значений в массиве). Таким образом, процент, который возвращается как истинный, будет относиться к levelname
, поэтому я могу выбрать его (или, по крайней мере, это то, что я пытаюсь сделать).
Кроме того, для пояснения: выбранная запись будет содержать уникальную информацию в одном из своих полей (это одно из уникальных значений из $array
, с которыми я запрашивал таблицу ранее). Затем я хочу обновить другую таблицу (a_table) с этим значением.
Итак, вы видите, единственная вещь, которую я не могу обернуть вокруг себя, это функция выбора процентного шанса ... Она довольно сложна для меня, и я мог бы пойти по этому поводу очень круглым путем, так что если есть альтернативный способ, я бы обязательно попробовал.
На ответ, который я получил: я сейчас попробую и посмотрю, что я могу сделать. Спасибо за ваш вклад =) **