배열값 for문 질문입니다 !!
본문
arr배열안에
[0] => 1
[1] => 1
[2] => 1
...
[21] => 1
[22] => 1
...
[50] => 1
[51] => 1
0~60번까지 있단 가정하에
for문을 0~20까지돌리고,
21~40까지돌리고,. 요런식으로 조건을 줄수가있을까요?
답변 4
* 개발자는 정확해야 해요. 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
$data = array_chunk($arr, 20);
foreach ( $data as $key=>$group ) {
// $key는 0, 1, 2, ...
// $group은 20개씩 그룹지어진 배열
foreach ( $group as $k=>$v ) {
// $k는 0, 1, 2, ..., 18, 19
// $v는 개별 값
}
}
// 이 정도면 조건문을 추가해 첫 번째 그룹, 두 번째 그룹 등 그룹별로 동작을 다르게 할 수 있겠죠?
// 참고로 다른 방법도 남깁니다. 페이징 등 여러 곳에서 활용되는 방법이죠.
$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] 사용
}
for(i =0; i<배열의 길이; i++){
if( i < 20){
}else if (i<40 && i >= 20){
}else if (i < 60 && i>= 60) {
}
}
for ($i = 0; $i < 21; $i++) {
echo $arr[$i];
}
for ($i = 21; $i < 41; $i++) {
echo $arr[$i];
}
function viewArr($arr, $start, $end) {
for ($i=$start, $i <=$end; $i++) {
echo $arr[$i];
}
}
$arr = array( 60개의 값이 존재한다고 가정);
viewArr($arr, 0, 20);
viewArr($arr, 21,40);
viewArr($arr, 41,60);
답변을 작성하시기 전에 로그인 해주세요.