Как вращать ссылки в списке ссылок один раз в день в Php - PullRequest
0 голосов
/ 21 октября 2018

PHP вопрос ...

У меня есть список из 10 ссылок, по которым я хочу менять порядок, один раз в день, чтобы:

  • День 1 echos Ссылка 1, Ссылка 2, Ссылка 3 и т. Д.
  • День 2, эхо Ссылка 2, Ссылка 3, Ссылка 4 и т. Д.
  • День 3 Эхо Ссылка 3, ссылка 4, ссылка 5 и т. Д.
  • И т. Д.

Это просто циклы каждый день, так что Ссылка 1 будет следовать после Связи 10, чтобы повторить цикл.Спасибо.

Ответы [ 2 ]

0 голосов
/ 21 октября 2018
$links = ['http://link1', 'http://link2',  'http://link3', 'http://link3', 'http://link4']; // etc
$offset = date('z');
for ($i = 0; $i < 3; $i++) {
   $index = ($i + $offset) % count($links);
   echo $links[$index]."<br>";
}

Операция по модулю % сохраняет индекс $ в пределах диапазона массива.

0 голосов
/ 21 октября 2018

Если вы храните свои ссылки в массиве, вы можете использовать дату ("z"), которая будет возвращать дату в виде числа от 0 до 365.

<?php
    $myLinks = array(0,1,2,3,4,5,6,7,8,9);
    $todaysStart = date("z") % count($myLinks);

    if($todaysStart != 0){
            $arrayBuffer = array_slice($myLinks,$todaysStart,sizeof($myLinks)-1);
            $arrayBuffer = array_merge($arrayBuffer,array_slice($myLinks,0,$todaysStart));
    }else{
            $arrayBuffer = $myLinks;
    }

Число на сегодня 293.293% 10 = 3, поэтому мы «сдвигаем» элементы на три точки влево и в конце объединяем первые три элемента.Теперь вы можете пройти через него с помощью foreach или любого другого типа цикла.

...