array range ( mixed $low , mixed $high [, number $step ] )
(PHP 4, PHP 5)

이 함수는 원소의 범위를 가지는 배열을 만들 수 있습니다. low는 최소값으로 영문자, 음수, 양수가 될 수 있으며, high는 증가값을 가집니다.

step 인자가 주어지면, 연속적인 원소들의 증가값으로 사용될 것이며, 양수로 주어져야 합니다. 이 값이 주어지지 않으면, step 의 기본 값은 1의 값을 가집니다.

<?php
 foreach (range(0, 12) as $number) {
   echo $number;
 }
 // 결과: array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);


 foreach (range(-5, 12) as $number) {
    echo $number;
 }
 // 결과: array(-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);


 // 5.0.0 부터 step 인자를 사용할 수 있습니다
 foreach (range(0, 100, 10) as $number) {
    echo $number;
 }
 // 결과: array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100);


 foreach (range('a', 'i') as $letter) {
    echo $letter;
 }
 // 결과: array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');


 foreach (range('c', 'a') as $letter) {
    echo $letter;
 }
 // 결과: array('c', 'b', 'a');
 ?> 

이 함수로 달력에 적용해 보겠습니다.

<?php
 $year = 2011;
 $month = 6;
 list($tday, $dday) = split('[ ]', date('t w',mktime(0,0,1,$month,1,$year)));



 $day = 1-$dday;
 $values = range($day, $tday);
 $rows = array_chunk($values, 7);



 echo "<table>\n";
 foreach ($rows as $row) {
      echo "<tr>\n";
      foreach ($row as $value) {
          echo "<td>\n";
          if($value >= 1){
              echo $value;
          }
      }
 }
 echo "</table>\n";



 /*결과: 
              1   2   3   4  
  5   6   7   8   9  10  11  
 12  13  14  15  16  17  18  
 19  20  21  22  23  24  25  
 26  27  28  29  30  
 */
 ?> 

0 댓글