我准备好对这个疯狂。我似乎无法弄清楚如何打印出数组的元素,然后将所有结果放在一行(具有特定的输出)。
这是我的数组数据(在通过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
我觉得我过于复杂化,想知道是否有人可以指出我正确的方向并帮助我。
谢谢! 德鲁
答案 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'];
}
}
这将迭代整个集合,并且只有在设置时才会读取每个单元格的内容。