0

我有我写的这个双数组(包含一些信息的数组中的数组)。正如您将看到的,我在下面使用了 for each 循环来显示每组登录信息。

 $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 次。我需要每组只回显一次。

有人明白吗?

4

3 回答 3

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";
 }

结果

服务器 1:用户名 1:密码 1:端口 1
服务器2:用户名2:密码1:端口2
服务器 3:用户名 3:密码 1:端口 3

查看演示

于 2013-03-09T19:53:12.967 回答
1

只需使用您的第一个 foreach。

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

实际上,您希望在循环中拥有一组索引,因此您只需要一个 foreach。

于 2013-03-09T19:54:29.297 回答
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 . ":";
       }
    }
 ?>     
于 2013-03-09T20:04:18.077 回答