2013-09-02 2 views
0

$name[1]$family[1]과 같이 배열 출력이 두 개 있습니다 (preg_match_all 사용).배열 및 중첩 된 foreach

내가 함께 이러한 배열을 넣어해야하고, 나는이 같은 foreach을 사용

foreach($name[1] as $name) { 
    foreach($family[1] as $family) { 
    echo $name.$family.'<br />'; 
    } 
} 

하지만이 작동하지 않습니다.

foreach($name as $key => $value) { 

    echo $value[$key] . $family[$key] . '<br />'; 

} 

이 다음 $name 각 경기를 통과하고 그것을 밖으로 인쇄 할 것이다 대응을 인쇄 :

+0

합니다 ('[1])의 foreach는? – Casey

+0

없이 나는 배열의 문자열 값을 얻지 못한다. –

+0

키를 사용하면 루프가 없습니다. 단지 1, $ name [1]이 있습니다. $ name [1] ... $ name [100] 배열에 100 개의 키가있을 수 있습니다. 하지만 키 이름을 짓고 있습니다. – Casey

답변

1

그들이 루프 키를 일치 한 가정 (각 foreach 루프는 별도로 작동) 그것과 함께 $family. 나는 을 생각하지 않는다.[1]으로 하드 코딩하려고한다.

내가 혼란스러워서 명확히하기 위해 var_dump$name$family 인 것을보고 싶습니다.

+0

올바른 생각이지만 $ name을 두 번 사용하면 안됩니다. – Adder

+0

이를 수정했습니다. 내 오타를 지적 해 주셔서 고맙습니다. –

0
$together= array(); 
foreach($name as $key => $n) { 
    $tuple= array('name'=>$name[$key],'family'=>$family[$key]); 
    $together[$key]= $tuple; 
} 

foreach($together as $key => $tuple) { 
    echo "{$tuple['name']} {$tuple['family']}<br />"; 
} 
0

사용 array_combine()는 :

키와 대응하는 값과 같은 값의 배열의 값으로서 키 배열의 값을 사용하여 배열을 생성한다.

PHP의 CODE : 왜 키 포함한

$nameFamilly=array_combine($name[1] , $family[1]); 
foreach( $nameFamilly as $name=>$familly) { 

    echo $name.$family.'<br />'; 

}