Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Foreach循环&;双阵列_Php_Arrays_Loops_Foreach - Fatal编程技术网

Php Foreach循环&;双阵列

Php Foreach循环&;双阵列,php,arrays,loops,foreach,Php,Arrays,Loops,Foreach,我编写了这个双数组(数组中包含一些信息的数组)。 下面您将看到,我使用for each循环来显示每一组登录 $servers = array( 1 => array('server1','username1','password1','port1'), 2 => array('server2','username2','password1','port2'), 3 => array('server3','username3','password1','port3')

我编写了这个双数组(数组中包含一些信息的数组)。 下面您将看到,我使用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

正如你在上面看到的那样,echo在每一组登录中都有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";
 }

只需移除内部的
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";
 }

只需使用第一个foreach

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

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

只需使用第一个foreach

foreach ($servers as $servers_array) {
    echo $servers_array[0].":".$servers_array[1].":".$servers_array[2].":".$servers_array[3]."\n";
}
实际上,您希望在循环中有一个索引数组,因此您只需要一个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 "<br />";
     foreach ($servers_array as $num => $value)
       {
          echo $value . ":";
       }
    }
 ?>     

那么:

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


无需在问题标题中添加标签。它们都是单独列出的。“正如你在上面看到的,echo的每一组登录都有3次”。实际上是4。不需要在问题的标题上添加标签。它们都是单独列出的。“正如你在上面看到的,echo的每一组登录都有3次”。实际上是4点,你在开玩笑吧?啊哈,我觉得自己太傻了。我确实在单foreach中尝试过,但由于某些原因,它使用了双数组,所以只提供了一组登录。谢谢别担心。我实际上在想你可能想通过迭代内部数组来创建输出。你在开玩笑吧?啊哈,我觉得自己太傻了。我确实在单foreach中尝试过,但由于某些原因,它使用了双数组,所以只提供了一组登录。谢谢别担心。我实际上在想,您可能希望遍历内部数组来创建输出。