foreach 색인을 찾는 방법은 무엇입니까?
foreach
색인 을 찾을 수 있습니까?
A의 for
루프는 다음과 같이 :
for ($i = 0; $i < 10; ++$i) {
echo $i . ' ';
}
$i
당신에게 색인을 줄 것입니다.
for
루프 를 사용해야 foreach
합니까, 아니면 루프 에서 인덱스를 가져 오는 방법이 있습니까?
foreach($array as $key=>$value) {
// do stuff
}
$key
각 $array
요소 의 색인입니다
foreach
각 런스 루에서 증분 된 필드와 같이을 해킹에 넣을 수 있습니다 . 이는 for
루프가 숫자로 배열 된 배열에서 정확히 제공하는 것입니다. 이러한 필드는 수동 관리 (증가 등)가 필요한 의사 색인입니다.
A foreach
는 $key
가치 의 형태로 색인을 제공 하므로 그러한 해킹이 필요하지 않습니다.
예를 들어 foreach
$index = 0;
foreach($data as $key=>$val) {
// Use $key as an index, or...
// ... manage the index this way..
echo "Index is $index\n";
$index++;
}
key()
모든 배열을 호출 하여 현재 키를 찾을 수 있습니다. 짐작할 수 있듯이 current()
현재 값을 반환 next()
하고 배열의 포인터를 다음 요소로 이동합니다.
오웬은 정답이 있습니다. 키만 원하고 배열로 작업하는 경우에도 유용 할 수 있습니다.
foreach(array_keys($array) as $key) {
// do stuff
}
$i
루프 외부에서 만들고 루프 $i++
의 맨 아래에서 수행 할 수 있습니다 .
이 두 개의 루프는 동일합니다 (물론 안전 난간을 막음) :
for ($i=0; $i<count($things); $i++) { ... }
foreach ($things as $i=>$thing) { ... }
예 :
for ($i=0; $i<count($things); $i++) {
echo "Thing ".$i." is ".$things[$i];
}
foreach ($things as $i=>$thing) {
echo "Thing ".$i." is ".$thing;
}
최선의 선택은 같다고 생각합니다.
foreach ($lists as $key=>$value) {
echo $key+1;
}
쉽고 일반적으로
PHP 배열에는 내부 포인터가 있으므로 다음을 시도하십시오.
foreach($array as $key => $value){
$index = current($array);
}
나를 위해 잘 작동합니다 (단지 예비 테스트 만).
조나단이 맞습니다. PHP 배열은 키를 값에 매핑하는 맵 테이블 역할을합니다. 경우에 따라 배열이 정의되어 있으면 색인을 얻을 수 있습니다.
$var = array(2,5);
for ($i = 0; $i < count($var); $i++) {
echo $var[$i]."\n";
}
당신의 출력은
2
5
이 경우 배열의 각 요소에는 알 수있는 색인이 있지만 다음과 같은 작업을 수행하면
$var = array_push($var,10);
for ($i = 0; $i < count($var); $i++) {
echo $var[$i]."\n";
}
출력이 없습니다. 이것은 PHP의 배열이 대부분의 언어에서와 같이 선형 구조가 아니기 때문에 발생합니다. 그것들은 저장된 모든 값에 대한 키가 있거나 없을 수있는 해시 테이블과 비슷합니다. 따라서 foreach는 인덱스가 배열을 정의한 경우에만 인덱스가 있기 때문에 인덱스를 사용하여 크롤링하지 않습니다. 인덱스가 필요한 경우 배열을 크롤링하기 전에 배열이 완전히 정의되어 있는지 확인하고 for 루프를 사용하십시오.
나는 일반적으로 연관 배열로 작업 할 때 이것을 수행합니다.
foreach ($assoc_array as $key => $value) {
//do something
}
이것은 비 연관 배열에서도 잘 작동합니다. $ key가 색인 값이됩니다. 원하는 경우 다음을 수행 할 수도 있습니다.
foreach ($array as $indx => $value) {
//do something
}
이것을 추가하고 싶습니다. 라 라벨에서 이것을 사용하여 테이블을 색인화했습니다.
- $ loop-> index로
- 또한 1에서 시작하기 위해 ++ $ loop로 미리 증가시킵니다.
내 코드 :
@foreach($resultsPerCountry->first()->studies as $result)
<tr>
<td>{{ ++$loop->index}}</td>
</tr>
@endforeach
foreach(array_keys($array) as $key) {
// do stuff
}
참고 URL : https://stackoverflow.com/questions/141108/how-to-find-the-foreach-index
'Programming' 카테고리의 다른 글
가능하면 항상 병렬 스트림을 사용해야합니까? (0) | 2020.02.17 |
---|---|
Tomcat, JBoss 및 Glassfish의 차이점은 무엇입니까? (0) | 2020.02.17 |
Android Min SDK 버전과 대상 SDK 버전 (0) | 2020.02.17 |
소수점 이하 두 자리로 반올림 (0) | 2020.02.17 |
문자열이 지정된 문자열로 시작하는지 확인하는 방법은 무엇입니까? (0) | 2020.02.17 |