문제

그것을 찾을 수 있습니까? 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";
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top