Простое взвешенное вращение ссылки? - PullRequest
2 голосов
/ 30 марта 2012

Я в настоящее время разбиваю целевые страницы в кампании, отправляя их по следующему сценарию:

$link[] = "http://www.website.com/lp1";
$link[] = "http://www.website.com/lp2";

$random_number = rand(0,count($link)-1);
$redirectlink = $link[$random_number];

header("Location: $redirectlink");

Если я хочу, чтобы первый LP показывался 75% времени, как мне поступить?делая это?Будет ли просто повторять эту первую ссылку еще два раза, или есть лучший способ сделать это?

1 Ответ

2 голосов
/ 30 марта 2012

Может быть, есть более лучший способ, но это тоже работает

$link[0] = array('link' => 'http://example.com/1', 'percent' => 7);
$link[1] = array('link' => 'http://example.com/2', 'percent' => 20);
$link[2] = array('link' => 'http://example.com/3', 'percent' => 73);

$percent_arr = array();
foreach($link as $k => $_l) {
    $percent_arr = array_merge($percent_arr, array_fill(0, $_l['percent'], $k));
}

$random_key = $percent_arr[mt_rand(0,count($percent_arr)-1)];
$redirectlink = $link[$random_key]['link'];

header("Location: $redirectlink");
...