PHP Array - 返回数组的特定元素并将它们显示在一行上

时间:2015-03-16 21:30:09

标签: php arrays multidimensional-array foreach

我准备好对这个疯狂。我似乎无法弄清楚如何打印出数组的元素,然后将所有结果放在一行(具有特定的输出)。

这是我的数组数据(在通过foreach语句运行之后:

Array
(
    [hostname] => server01
    [server_id] => 4
    [disk_mountpoint] => /
    [disk_datetime] => 1426395600
    [disk_device] => /dev/mapper/VolGroup00-LogVol00
    [disk_capacity] => 15G
    [disk_used] => 5.3G
)
Array
(
    [hostname] => server01
    [server_id] => 4
    [disk_mountpoint] => /var
    [disk_datetime] => 1426395600
    [disk_device] => /dev/mapper/VolGroup01-LogVol00
    [disk_capacity] => 107G
    [disk_used] => 52G
)
Array
(
    [hostname] => server01
    [server_id] => 4
    [disk_mountpoint] => /opt
    [disk_datetime] => 1426395600
    [disk_device] => /dev/mapper/VolGroup02-LogVol00
    [disk_capacity] => 156G
    [disk_used] => 127G
)

这是我的foreach声明:

foreach ($storage_report as $item) {
                print_r($item);
}

我花了几个小时的时间试图围绕一个多维数据集进行思考,并在StackOverflow上查看其他人的问题,但似乎没有什么能适合我尝试做的事情。 。

顺便说一下,上面的数组实际上是从MySQL查询输出的,它只返回一个唯一的hostname,因此它与元素具有相同的主机名,这是正确的(与server_id相同)。

我甚至试过一个嵌套的foreach循环并且效果不好而且我再次感到困惑,所以我不想在这里发帖。

基本上,根据上面的数据,我希望输出看起来像:

$disk_mountpoint = $disk_used

话虽如此,最终输出(如果你要解析我刚写的内容),最终输出将如下所示:

/ = 5.3G
/var = 52G
/opt = 127G

我觉得我过于复杂化,想知道是否有人可以指出我正确的方向并帮助我。

谢谢! 德鲁

3 个答案:

答案 0 :(得分:3)

嗯..只是:

foreach ($storage_report as $item) {
    echo $item['disk_mountpoint'] .'='.$item['disk_used'];

}

答案 1 :(得分:1)

是的,男人过于复杂化。你不能这样做吗

foreach ($storage_report as $item) {
   echo $item['disk_mountpoint']."=".$item['disk_used'];
}

答案 2 :(得分:1)

如果是我明白的话,那么:

foreach ($storage_report as $item) 
{
      if (isset($item['disk_mountpoint']) && isset($item['disk_used']))
      {
          echo $item['disk_mountpoint'] .'='. $item['disk_used']; 
      }
}

这将迭代整个集合,并且只有在设置时才会读取每个单元格的内容。