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;
}
쉽고 일반적으로