Programming

foreach 색인을 찾는 방법은 무엇입니까?

procodes 2020. 2. 17. 22:26
반응형

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

반응형