문제
그것을 찾을 수 있습니까? foreach
인덱스?
안에 for
다음과 같이 루프 :
for ($i = 0; $i < 10; ++$i) {
echo $i . ' ';
}
$i
당신에게 색인을 줄 것입니다.
나는 그것을 사용해야합니까? for
루프 또는 인덱스를 얻을 수있는 방법이 있습니까? foreach
고리?
해결책
foreach($array as $key=>$value) {
// do stuff
}
$key
각각의 색인입니다 $array
요소
다른 팁
당신은 당신의 해킹을 할 수 있습니다 foreach
, 각 런 스루에 증가 된 필드와 같은 for
루프는 수치 적으로 인덱스 배열로 제공합니다. 이러한 필드는 수동 관리 (증분 등)가 필요한 의사 인덱스입니다.
ㅏ foreach
귀하의 지수를 귀하의 형태로 제공합니다. $key
가치가 있으므로 그러한 해킹이 필요하지 않아야합니다.
예를 들어, a 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;
}
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는 배열이 정의 된 경우 인덱스 만 있으므로 인덱스를 사용하여 크롤링하지 않습니다. 인덱스가 필요한 경우 배열이 크롤링하기 전에 배열이 완전히 정의되어 있는지 확인하고 루프 용 A를 사용하십시오.
최선의 선택은 동일하다고 생각합니다.
foreach ($lists as $key=>$value) {
echo $key+1;
}
쉽고 평소입니다
나는 일반적으로 연관 배열로 작업 할 때 다음을 수행합니다.
foreach ($assoc_array as $key => $value) {
//do something
}
이것은 비 연관 어레이에서도 잘 작동합니다. $ 키는 인덱스 값입니다. 원하는 경우, 당신도 이것도 할 수 있습니다 :
foreach ($array as $indx => $value) {
//do something
}
나는 이것을 추가하고 싶습니다. 나는 이것을 Laravel에서 사용하여 내 테이블을 색인화했습니다.
- $ loop-> index
- 나는 또한 ++ $ loop으로 그것을 1시에 시작합니다.
내 코드 :
@foreach($resultsPerCountry->first()->studies as $result)
<tr>
<td>{{ ++$loop->index}}</td>
</tr>
@endforeach
foreach(array_keys($array) as $key) {
// do stuff
}
foreach($arrvariable as $key=>$value){
echo "$key";
}