2014-07-14 5 views
0

나는 => 운영자 에서 PHP 연관 배열에 값을 할당하는 데 사용됩니다 이해 :for-each 루프에서 => 연산자는 무엇을 의미합니까?

$array = array(key1 => value1, key2 => value2, key3=> value3); 

내가 PHP에서 for-each loop

foreach ($array as $value) { 
    echo $value; 
} 

처럼 반복하지만, 내가 좋아하는 무언가를 발견 한 것을 이해

foreach ($question->get_order($qa) as $value => $ansid) {...} 

$value => $ansid 부분을 이해하지 못합니다.

$question -> get_order($qa)은 배열을 반환합니다. 이를 반복하고 싶으므로 foreach ($question -> get_order($qa) as $value) {...}이어야합니다?

+0

가능한 복제본 [참고 -이 기호는 PHP에서 무엇을 의미합니까?] (http://stackoverflow.com/questions/3737139/reference-what-this-symbol-mean-in-php) –

답변

5

연산자 => 연산자는 배열의 키를 왼쪽의 변수에 할당하고 값을 변수의 오른쪽에 할당합니다. 예를 들어, 배열은 다음

foreach ($array as $key => $value) { 
    echo "$key: $value\n"; 
} 

이 배열 키도 의미가있는 경우에 특히 유용합니다

key1: value1 
key2: value2 
key3: value3 

를 인쇄하고 당신 안에 그들을 필요로

$array = array(key1 => value1, key2 => value2, key3=> value3);

경우 for -loop (값과 별도).

: 배열이 "결합 없음"것을

$students_by_id = array(1234 => "John Smith", 2372 => "Pete Johnson"); 
$grades = array(1234 => 87, 2372 => 68); 

foreach($grades as $student_id => $grade) { 
    echo $students_by_id[$student_id] . " scored " . $grade . "/100 points.\n"; 
} 

참고, 예를 들어

$array = array(value1, value2, value3); 

는 PHP는 당신을 위해 숫자 인덱스를 작성하고 실행

foreach ($array as $key => $value) 

에서 $key 변수 것를 통해 0, 1, 2, 3, ...일반적으로 효율적으로 동등한

for ($key = 0, $key < count($array); ++$key) { 
    $value = $array[$key]; 
    // ... 
} 

로 루프를 만드는 적어도 경우 지수의 목록에서 누락하지 효율성을 위해 다음 경우에 나는 여전히 => 표기법을 추천하거나 연관 배열로 결국 전환하기로 결정 .

2

$ value => $ ansid는 값뿐만 아니라 키와 값을 반환합니다.

그래서 일반 배열 인 경우 키는 0,1,2,3,4 등이며 값은 v0, v1, v2, v3, v4가됩니다.

+3

샘플 배열을 사용하면 개선 될 수 있습니다. –

+0

'$ question = get_order ($ qa)'는 연관 배열이 아닌 인덱스 배열을 반환합니다. 그래서 '$ value'가 0,1,2,3 인 인덱스를 얻고 ($ ansid) 배열의 실제 내용을 얻게된다는 것을 배워야합니까? – Solace

+1

예, 배열에 색인을 붙이면 색인은 자동으로 0, 1, 2, 3, ...으로 번호가 매겨집니다. 'array (0 => first, 1 => second,. ..)'array (first, second, ...)'보다는 오히려'스스로'. – CompuChip

4

for 루프에서 동일한 연산자를 사용하여 키와 값을 가져올 수 있습니다. => 이전의 변수는 각 항목의 키를 가져오고 그 뒤에있는 변수는 값을 가져옵니다.

그래서 특정 경우에, $value는 (첫 번째 반복에 'key1') 항목의 키를 얻을 것이다 $ansid는 값 (첫 번째 반복에 'value1')를 얻을 것이다.

이 기능은 (명명 된) 키가있는 배열에 특히 유용하지만 일반 배열에도 사용할 수 있습니다.이 경우 키의 숫자 인덱스를 얻을 수 있습니다.

관련 문제