테스트 사이트 - 개발 중인 베타 버전입니다

배열값 for문 질문입니다 !! 채택완료

mmkk2 5년 전 조회 2,292

 

arr배열안에

[0] => 1

[1] => 1

[2] => 1

...

[21] => 1

[22] => 1

...

[50] => 1

[51] => 1

0~60번까지 있단 가정하에

for문을 0~20까지돌리고, 

        21~40까지돌리고,. 요런식으로 조건을 줄수가있을까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

채택된 답변
+20 포인트
B
5년 전

* 개발자는 정확해야 해요. 0~20은 21개입니다.

+ array_chunk() 함수를 이용하면, 간편하게 원하는 개수만큼 묶어서 처리할 수 있습니다.

- https://www.php.net/manual/en/function.array-chunk.php

- http://docs.php.net/manual/kr/function.array-chunk.php

</p>

<p>$data = array_chunk($arr, 20);</p>

<p>foreach ( $data as $key=>$group ) {

    // $key는 0, 1, 2, ...

    // $group은 20개씩 그룹지어진 배열

    foreach ( $group as $k=>$v ) {

        // $k는 0, 1, 2, ..., 18, 19

        // $v는 개별 값

    }

}</p>

<p>// 이 정도면 조건문을 추가해 첫 번째 그룹, 두 번째 그룹 등 그룹별로 동작을 다르게 할 수 있겠죠?</p>

<p> </p>

<p>// 참고로 다른 방법도 남깁니다. 페이징 등 여러 곳에서 활용되는 방법이죠.</p>

<p>$group_no = 1; // 그룹 번호

$size = 20; // 개수

$offset = ($group_no-1)*$size; // 시작 위치

$limit = $offset + $size; // 끝 위치

for ($i=$offset; $i<$limit; $i++) {

    if ( !isset($arr[$i]) ) break; // 배열 없으면 벗어나기. 위에서 시작 위치, 끝 위치를 미리 제한해도 Good!

    // $arr[$i] 사용

}</p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

플래토
5년 전

</p>

<p>function viewArr($arr, $start, $end) {</p>

<p>   for ($i=$start, $i <=$end; $i++) {</p>

<p>       echo $arr[$i];</p>

<p>   }</p>

<p>}</p>

<p> </p>

<p>$arr = array( 60개의 값이 존재한다고 가정);</p>

<p>viewArr($arr, 0, 20);</p>

<p>viewArr($arr, 21,40);</p>

<p>viewArr($arr, 41,60);</p>

<p> </p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

B
BiHon
5년 전
참고로 알아두면 유용한 함수 소개합니다.
+ array_slice()
- https://www.php.net/manual/en/function.array-chunk.php
- http://docs.php.net/manual/kr/function.array-slice.php
[code]
echo implode(', ', array_slice($arr, 0, 20)), '<br>'; // 키 0~19까지의 배열값
echo implode(', ', array_slice($arr, 20, 20)), '<br>'; // 키 20~39까지의 배열값
echo implode(', ', array_slice($arr, 40, 20)), '<br>'; // 키 40~59까지의 배열값
[/code]

댓글을 작성하려면 로그인이 필요합니다.

5년 전

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

  echo $arr[$i];

}

 

for ($i = 21; $i < 41; $i++) {

  echo $arr[$i];

}

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

for(i =0; i<배열의 길이; i++){

 if( i < 20){

 

 }else if (i<40 && i >= 20){

 

 }else if (i < 60 && i>= 60) {

 

 }

}

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인