PHP While循环多维数组

时间:2016-09-02 20:25:42

标签: php arrays multidimensional-array

所以我尝试使用while循环遍历一堆数组。 所以它不能像这样工作,它是如何工作的?

    while($x<$sQuery($SERVER)['number'])
    {
        $o = $o . "<Server>
      <Name>".$sQuery($SERVER)[$x]['name']."</Name>
      <DNS>".$sQuery($SERVER)[$x]['ip']."</DNS>
    <Lat>0</Lat>
      <Long>0</Long>
      <Usage>-1</Usage>
      <RankRequired>0</RankRequired>
    </Server>"
        x++;
    }
}

错误在这一行:

      <Name>".$sQuery($SERVER)[$x]['name']."</Name>
      <DNS>".$sQuery($SERVER)[$x]['ip']."</DNS>

[$x]是不允许的,我不知道如何循环使用它们,任何想法?

2 个答案:

答案 0 :(得分:2)

我会这样重写: -

$s = $sQuery($SERVER);

for($i=0; $i<$s['number']; $i++)
{
    $o .= "<Server><Name>".$s[$i]['name']."</Name>
           <DNS>".$s[$i]['ip']."</DNS><Lat>0</Lat><Long>0</Long><Usage>-1</Usage>
           <RankRequired>0</RankRequired></Server>";
}

答案 1 :(得分:1)

所以,我回答了我自己的问题(有点)。 评论对我帮助很大。 事情是..我应该去睡觉,因为我太累了编程。

function ListServersXML($SERVER)
{
    $x = 0;
    $o = "";
    $s = sQuery($SERVER);
    while($x<$s['number'])
    {
        $o = $o . "<Server>
      <Name>".$s[$x]['name']."</Name>
      <DNS>".$s[$x]['ip']."</DNS>
    <Lat>0</Lat>
      <Long>0</Long>
      <Usage>-1</Usage>
      <RankRequired>0</RankRequired>
    </Server>";
        $x++;
    }
    return $o;
}

(顺便说一句,这是我的全部功能)