применяя случайную величину случайным образом - PullRequest
0 голосов
/ 15 мая 2011

У меня есть код, генерирующий случайный шрифт и применяющий новый случайный шрифт к каждой строке текста, и я хотел бы добавить

$line = str_replace ("a", "@", $line);

Но я бы хотел, чтобы вероятность применения этого к каждой строке составляла 10%, а не к строке в целом. Как мне это сделать? Вот мой существующий код:

$fonts = array("Helvetica", "Arial", "Courier", "Georgia", "Serif", "Comic Sans", "Tahoma", "Geneva", "Times New Roman");
shuffle($fonts);

$output = "";

$lines = array_slice(file("users.txt"), -20, 20);

$i = 0;
foreach ( $lines as $line ) {
  if($i == count($fonts)) {
    shuffle($fonts);
    $i = 0;
  }
  $output .= '<div style="font-size: ' . rand(15, 23) . 'px; font-family:' . $fonts[$i] . '; margin-left: ' . rand(0, 60) . '%; opacity: 0.8;">' . $line . "</div>\n";
  $i++;
    }

echo $output;

Я только начинаю знакомиться с php, я чувствую, что у меня есть целая новая сеть для игры! : D

Ответы [ 2 ]

4 голосов
/ 15 мая 2011

Если вы хотите с 10% -ной вероятностью изменить свое «а» на «@», попробуйте вставить этот код:

if(rand(0, 9) == 1)
{
    $line = str_replace ("a", "@", $line);
}

Он генерирует целое число от 0 до 9, и если онравняется 1 (10% шанс, тогда он применяет ваше форматирование.

1 голос
/ 15 мая 2011

Итак, в цикле te foreach($lines as $line), добавьте

$rand = rand(0,9);
if($rand == 0)
{
    $line = str_replace("a","@",$line);
}
...