$urls = array('url1','url2','url3','url4');
echo array_rand($urls);
Этот код написан не мной, а взят с сайта http://ruseller.com/lessons.php?rub=37&id=169 . В силу своей просты он автору будет более понятен. Лично я не советовал бы делать рандом на php, а взять библиотеку Mootools и выполнять аналогичное на стороне клиента. И заруби себе на носу: Ты НИКТО, чтобы меня критиковать.
Передать клиенту массив со ссылками, и рандомизировать его на клиентской стороне - в разы напряжнее, чем рандомизировать на уровне сервера. К тому же, существует array_rand, специально для таких задач.
Допустим есть массив из 100 ссылок. Серверу в разы легче рандомизировать и выплюнуть один ключ, ежели через JSON или что-то иное передать клиенту массив полностью, чтобы тот получил значение по рандомному ключу.
Ты немножко перепутал сайт. Это ВАП мастерская, а в ВАПЕ сидят с ТЕЛЕФОНА.
Я конечно могу себе позволить провести кабель к мобильному телефону, но на улице меня не поймут.
Да, какие-то действия лучше выполнять на клиентской стороне, но не в этом случае.
Твой код вернет 1,2,3,4. array_rand возвращает ключ, а не значение.
<?php
$links = [
'<a href="?1">ссилка 1</a>',
'<a href="?2">силка 2</a>',
'<a href="?2">силь 3</a>'
];
echo $links[array_rand($links)];
?>
Shults,
Если из БД ссылки берутся - юзай запрос типа: 'SELECT `fieldname` FROM `tablename` ORDER BY RAND() LIMIT 1'. Ну и дальше обрабатываешь либо через mysql_result, если запрашиваешь одно поле, либо через mysql_fetch_row(num, assoc) - если получаешь несколько полей. Если из массива - тогда $array[mt_rand(0, count($array)-1)]
А теперь представь ещё и то, что я отключаю JS в браузере, и несколько мобильных браузеров не поддерживают JS - таких людей предложишь слать далеко и надолго? . Я понимаю, что с точки зрения экономии ресурсов сервера ты прав, но сточки зрения адаптивности к посетителям сайта - твой подход неоправдан .
$urls = array('url1','url2','url3','url4');
echo array_rand($urls, 1);
ИМХО всё-таки лучше указать данной функции, сколько выбирать элементов...