2014-10-17 2 views
0

Я пытаюсь напечатать следующую последовательность с php.проблема печатать последовательность чисел к рисунку

enter image description here

Вот мой код до сих пор:

$last = 1; 

for ($j = 1; $j < 5; $j++){ 


for ($i = 0; $i < 14 ; ++$i){ 

    if($i %4 == 0){ 
     echo "************"; 
    } 

    if ($i + $last > 14){ 
     $last= -$i + 1 ; 

    } 

    echo $i+$last." , "; 
} 


echo "</br>"; 

$last=$i + $last -2; 
if ($last > 14) { 
    $last = 1; 
} 


} 

Приведенный выше код производить что-то, как следует, что это не совсем то, что я хотел.

enter image description here

ответ

2

Это, кажется, чтобы сделать работу:

$len = 14; 

foreach(range(0, 6) as $day) { 
    $start = ($day * 4 + 1) % $len; 
    $rng = array_slice(
     array_merge(range($start, $len), range(1, $start)), 
     0, 
     $len); 
    $cols = [$day + 1]; 
    foreach(array_chunk($rng, 4) as $c) 
     $cols []= implode(',', $c); 
    echo implode(' | ', $cols), "\n"; 
} 

Результат:

1 | 1,2,3,4 | 5,6,7,8 | 9,10,11,12 | 13,14 
2 | 5,6,7,8 | 9,10,11,12 | 13,14,1,2 | 3,4 
3 | 9,10,11,12 | 13,14,1,2 | 3,4,5,6 | 7,8 
4 | 13,14,1,2 | 3,4,5,6 | 7,8,9,10 | 11,12 
5 | 3,4,5,6 | 7,8,9,10 | 11,12,13,14 | 1,2 
6 | 7,8,9,10 | 11,12,13,14 | 1,2,3,4 | 5,6 
7 | 11,12,13,14 | 1,2,3,4 | 5,6,7,8 | 9,10 
Смежные вопросы