2010-07-26 3 views
4

이 첫 번째 코드 블록은 예상대로 작동합니다. 키 값 배열 $fnames에서 값을 인쇄하려면 foreach입니다.중첩없는 다중 foreach

foreach($fnames as $fname){ 
    echo $fname; 
} 

$fnames 배열은 해당 $lnames 배열을 가지고 있으며, 나는, 같은 시간에 이런 일을 FNAME와 LNAME을 인쇄하고 싶습니다 :하지만

를 컴파일되지 않습니다
foreach($fnames as $fname && $lnames as $lname){ 
    echo $fname . " " . $lname; 
} 

나는 이것을 시도했지만 컴파일도하지 않았다.

컴파일 된 유일한 것이지만 올바른 결과를주지 못했습니다.

foreach($fnames as $fname){ 
    foreach($lnames as $lnames){ 
     echo $fname . " " . $lname; 
    } 
} 

같은 색인의 2 개 배열간에 이러한 종류의 페어링을 얻으려면 어떻게해야합니까?

답변

9
foreach($fnames as $key => $fname){ 
    echo $fname.' '.$lnames[$key]; 
} 
+3

배열의 키가 일치해야합니다. –

5

또 다른 옵션은 다음과 같습니다 당신이 배열을 결합하지 않으려면

foreach(array_map(null,$fnames,$lnames) as $name){ 
    echo $name[0].' '.$name[1]; 
} 
+0

깔끔한 트릭, 그 기술을 기억해야합니다. –

2

, 당신은 실제로 한 번에 실행하는 두 발전기가 필요합니다. Fortuantely, PHP는 배열로 이것을 수행 할 수있는 방법이 있습니다. 그래도 조금 오래된 학교예요.

reset($fnames); 
reset($lnames); 
do { 
    print current($fnames).' '.current($lnames)."\n"; 
} while(next($fnames) && next($lnames)); 

이것은 다소 고안된 예제이지만, 여전히 유용한 기술입니다.