2013-03-09 3 views
0

필자가 작성한이 이중 배열을 가지고 있습니다 (일부 정보가 들어있는 배열 내에있는 배열). 아래에서 알 수 있듯이 각 루프마다 a를 사용하여 각 로그인 세트를 표시합니다. 이 로그인 3 배의 각 세트를의를 에코 위에 당신이 볼 수 있듯이Foreach 루프 및 이중 배열

$servers = array(
1 => array('server1','username1','password1','port1'), 
2 => array('server2','username2','password1','port2'), 
3 => array('server3','username3','password1','port3') 
); 
foreach ($servers as $count => $servers_array) 
    { 
    foreach ($servers_array as $num => $value) 
    { 
    echo $servers_array[0].":".$servers_array[1].":".$servers_array[2].":".$servers_array[3]."\n"; 
} 
} 

위의 출력은

server1:username1:password1:port1 
server1:username1:password1:port1 
server1:username1:password1:port1 
server1:username1:password1:port1 
server2:username2:password1:port2 
server2:username2:password1:port2 
server2:username2:password1:port2 
server2:username2:password1:port2 
server3:username3:password1:port3 
server3:username3:password1:port3 
server3:username3:password1:port3 
server3:username3:password1:port3 

입니다. 나는 각 세트가 단지 한 번씩 반복 될 필요가있다.

누구나 이해할 수 있습니까?

+0

질문의 제목에 태그를 추가 할 필요가 없습니다. 그들은 모두 별도로 나열되어 있습니다. – hjpotter92

+1

"위에서 볼 수 있듯이 각 로그인은 3 번 울립니다." 실제로 4입니다. – Shoe

답변

3

내선을 제거하십시오. foreach.

<?php 

$servers = array(
1 => array('server1','username1','password1','port1'), 
2 => array('server2','username2','password1','port2'), 
3 => array('server3','username3','password1','port3') 
); 
foreach ($servers as $count => $servers_array) 
{ 
    echo $servers_array[0].":".$servers_array[1].":".$servers_array[2].":".$servers_array[3]."\n"; 
} 

결과

server1:username1:password1:port1 
server2:username2:password1:port2 
server3:username3:password1:port3

See the demo

+0

농담하는 것이 맞습니까? 아하, 바보 같아. 나는 실제로 하나의 foreach 내에서 그것을 시도했지만 더블 어레이로 인해 어떤 이유로 로그인 한 번만 뱉어 냈습니다. 감사!! –

+0

걱정할 필요가 없습니다. 실제로 출력을 생성하기 위해 내부 배열을 반복 할 수 있다고 생각했습니다. – Kermit

1

그냥 첫 번째 foreach 문을 사용합니다.

foreach ($servers as $servers_array) { 
    echo $servers_array[0].":".$servers_array[1].":".$servers_array[2].":".$servers_array[3]."\n"; 
} 

사실 루프 내부에 인덱스 배열을 원하기 때문에 하나의 foreach 만 있으면됩니다.

0

방법 :

<?php 
$servers = array(
    1 => array('server1','username1','password1','port1'), 
    2 => array('server2','username2','password1','port2'), 
    3 => array('server3','username3','password1','port3') 
    ); 

    foreach ($servers as $count => $servers_array) 
    { 
    echo "<br />"; 
    foreach ($servers_array as $num => $value) 
     { 
      echo $value . ":"; 
     } 
    } 
?>