PHP의 특정 인덱스에서 foreach 루프를 시작하는 방법
foreach
0 번째 인덱스에서 시작하지 않고 대신 내 배열의 첫 번째 인덱스에서 시작 하는 a 를 작성하고 있습니다. 루프의 시작점을 오프셋하는 방법이 있습니까?
단순하게 유지하십시오.
foreach ($arr as $k => $v) {
if ($k < 1) continue;
// your code here.
}
continue
매뉴얼 의 제어 구조를 참조하십시오 .
A Foreach
는 어레이를 재설정합니다.
참고 : foreach가 처음 실행을 시작하면 내부 배열 포인터가 배열의 첫 번째 요소로 자동 재설정됩니다. 이는 foreach 루프 전에 reset ()을 호출 할 필요가 없음을 의미합니다.
for
루프를 사용하십시오 ( 연관 배열 이 아닌 경우에만 ).
$letters = range('a','z');
for($offset=1; $offset < count($letters); $offset++) {
echo $letters[$offset];
}
또는 while
루프 (모든 배열 일 수 있음)
$letters = range('a','z');
next($letters);
while($letter = each($letters)) {
echo $letter['value'];
}
$letters = new LimitIterator(new ArrayIterator(range('a','z')), 1);
foreach($letters as $letter) {
echo $letter;
}
생성자를 통해 시작 오프셋 및 개수를 지정할 수 있습니다.
위의 모든 항목은 a에서 z 대신 b에서 z 문자를 출력합니다.
다음 array_slice
기능을 사용할 수 있습니다 .
$arr = array(); // your array
foreach(array_slice($arr, 1) as $foo){
// do what ever you want here
}
물론 원하는 오프셋 값을 사용할 수 있습니다. 이 경우 1
배열의 첫 번째 요소를 '건너 뛰십시오'.
foreach에서는 그렇게 할 수 없습니다. 원하는 것을 얻는 방법은 두 가지뿐입니다.
- for 루프를 사용하고 위치 1에서 시작
- foreach를 사용하고 실제 코드 주위에 if ($ key> 0) 같은 것을 사용하십시오.
foreach는 그 이름이 말하는대로합니다. 모든 요소에 대해 뭔가 수행 :)
편집 : 좋아, 아주 사악한 해결책이 내 마음에 떠올랐다. 다음을 시도하십시오.
foreach(array_reverse(array_pop(array_reverse($array))) as $key => $value){
...
}
그것은 배열을 뒤집고 마지막 요소를 튀어 나와 다시 뒤집습니다. 첫 번째 요소를 제외한 요소가 있습니다.
그러나 다른 솔루션 중 하나를 사용하는 것이 좋습니다. 가장 좋은 것이 첫 번째 것입니다.
그리고 변형 :이를 위해 array_slice ()를 사용할 수 있습니다.
foreach(array_slice($array, 1, null, true) as $key => $value){
...
}
그러나 foreach 루프의 배열 키를 유지하려면 세 매개 변수를 모두 사용해야합니다.
for 루프가 여기로 이동하는 더 좋은 방법 인 것 같지만 foreach를 사용해야한다고 생각하면 배열에서 첫 번째 요소를 이동하고 다시 이동 해제 할 수 있습니다.
$a = array('foo','bar');
$temp = array_shift($a);
foreach ( $a as $k => $v ) {
//do something
}
array_unshift($a, $temp);
아무 본문도 말하지 않았지만 배열을 변경하는 데 신경 쓰지 않고 주어진 배열의 두 번째 요소에서 시작하려면 다음을 수행하십시오.
unset($array[key($array)]);
foreach($array as $key=>$value)
{
//do whatever
}
괜찮다면 추가하세요
$saved = $array;
unset($array[key($array)]);
foreach($array as $key=>$value)
{
//do whatever
}
$array = $saved;
또한 지정된 알려진 색인을 건너 뛰려면
key($array)
주어진 색인으로
참고 URL : https://stackoverflow.com/questions/3229905/how-to-start-a-foreach-loop-at-a-specific-index-in-php
'Nice programing' 카테고리의 다른 글
ReCaptcha 2.0 : recaptcha가 성공하면 콜백에서 제출 버튼 활성화 (0) | 2020.12.11 |
---|---|
WPF에서 DPI를 어떻게 얻을 수 있습니까? (0) | 2020.12.10 |
BeautifulSoup의 태그에 속성이 있는지 테스트 (0) | 2020.12.10 |
C ++에서 문자열을 인쇄하는 방법 (0) | 2020.12.10 |
숫자가 10보다 작 으면 선행 0을 표시합니다. (0) | 2020.12.10 |