관리 메뉴

웹개발자의 기지개

[php] 특정 배열요소 값을 순환식(3개씩)으로 교대로 얻기 본문

PHP

[php] 특정 배열요소 값을 순환식(3개씩)으로 교대로 얻기

웹개발자 워니 2020. 5. 15. 11:35
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
<?
$cnoArr = array('12''15''17''19''21''22''23');
 
function getItemFor3($arr,&$i){
    $arr2 = array();
    $i++;
    $m = count($arr);
    $arr2[]=$arr[$i%$m];
    $arr2[]=$arr[(++$i)%$m];
    $arr2[]=$arr[(++$i)%$m];
    return $arr2;
}
 
$i = 1;
$arr = getItemFor3($cnoArr,$i);
 
var_dump($arr);
 
// array(3) { [0]=> string(2) "17" [1]=> string(2) "19" [2]=> string(2) "21" }
 
$i = 9;
$arr = getItemFor3($cnoArr,$i);
var_dump($arr);
 
// array(3) { [0]=> string(2) "19" [1]=> string(2) "21" [2]=> string(2) "22" }
?>
cs

위의 소스에서 $i값이 1번이면 $cnoArr[1] 인데 6라인처럼 $i++ 해서 하나더 플러스된 $cnoArr[2] 의 값부터 3개씩 계속 연이어 교대로 얻어오는 방법이다.

 

$i = 1 이면 17, 19, 21

 

  동작 흐름:
  $i = 1에서 시작 → 함수 들어가면 $i++ → $i = 2

  배열 크기 $m = 7

  추출되는 요소:
  $arr[2 % 7] = $arr[2] = '17'
  ++$i → 3 → $arr[3 % 7] = '19'
  ++$i → 4 → $arr[4 % 7] = '21'

 

 

$i = 9 이면 19, 21, 22

 

   동작 흐름:
   $i = 9 → i++ → $i = 10

   배열 크기 $m = 7

   추출되는 요소:
   $arr[10 % 7] = $arr[3] = '19'
   ++$i → 11 → $arr[11 % 7] = $arr[4] = '21'
   ++$i → 12 → $arr[12 % 7] = $arr[5] = '22'

Comments