2013-03-09 101 views
0

我有这个我写的双数组(数组包含一些信息)。 下面,你会看到我用每个循环来显示每组登录。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 

正如你可以在上面看到它呼应的出每组登录3次。我需要每一个回应一次。

任何人都明白了吗?

+0

无需添加标签问题的称号。它们都是分开列出的。 – hjpotter92 2013-03-09 19:55:23

+1

“正如你在上面看到的,它回显了每次登录3次”。实际上是4。 – Shoe 2013-03-09 19:56:00

回答

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中尝试过,但由于某些原因,由于双数组只是吐出一组登录名。谢谢!! – 2013-03-09 19:57:02

+0

不用担心。我实际上认为你可能想迭代内部数组来创建输出。 – Kermit 2013-03-09 19:57:45

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 . ":"; 
     } 
    } 
?>