Foreach循环&双阵列

时间:2013-03-09 19:51:48

标签: php arrays loops foreach

我有这个我写的双数组(包含一些信息的数组中的数组)。 下面你会看到我使用a为每个循环显示每组登录。

 $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次。我需要每个回合一次。

任何人都明白吗?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

使用你的第一个foreach。

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

实际上你想在循环中有一个索引数组,因此你只需要一个foreach。

答案 2 :(得分: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 . ":";
       }
    }
 ?>