我一直在寻找与我的问题相关的其他问题,但似乎没有一个与我的确切情况相符。我正在做一些关于网页的一些数据的TopTen排名 - 比如什么是最多的IP访问你的页面,什么时候是最后一次访问,多少字节......所有这些:)
现在我已经写了一个代码,它给了我回页的最多10个访问者的所有字节..我想把这个结果返回到我的html页面 - 这有效,但输出不是我真正想要的< / p>
这是我的代码:
EpcName = "Want to pass this String to other workbook" ' Me.ComboBox2.Text
If Not m_theOtherWorkbook Is Nothing Then _
m_theOtherWorkbook.EpcName = EpcName
现在我将其返回到我的html页面..
$ mb_bytes的输出是:
$mb_bytes = array();
foreach ($topTenIp as $val) {
$bytes_ips[$val] = shell_exec("grep $val /path/file.log | awk '{print $10}'");
$add = array_sum(explode("\n", $bytes_ips[$val]));
$add = $add / 1024 / 1024;
$add = round($add, 2);
array_push($mb_bytes, $add);
}
if($mb_bytes)
arsort($mb_bytes);
但我不希望我的html中的输出连续写入..我希望它像:
Array ( [0] => 1.56 [5] => 0.61 [4] => 0.24 [1] => 0.16 [3] => 0.13 [2] => 0.08 [9] => 0.01 [6] => 0.01 [7] => 0.01 [8] => 0 )
有谁知道解决方案?我的HTML中的部分如下所示:
1.56
0.61
0.24
0.16
....
但我认为HTML中的foreach也会遇到一些问题..(我正在使用LARAVEL框架
谢谢:)
编辑:现在看起来像这样! <tr>
<th> Top 10</th>
<th> Bytes</th>
<th> Date </th>
</tr>
@foreach($topTenIp as $ip[$i])
<tr>
<th>{{ $ip[$i] }}</th>
<th> here should be the $mb_byte variable </th>
</tr>
@endforeach
但它看起来应该是这样的:
IP 1.56 0.61 0.24 0.16 0.13 0.08 0.01 0.01 0.01 0
IP 1.56 0.61 0.24 0.16 0.13 0.08 0.01 0.01 0.01 0
IP 1.56 0.61 0.24 0.16 0.13 0.08 0.01 0.01 0.01 0
.......
新编辑:
我的代码:
IP 1.56
IP 0.61
IP 0.24
IP 0.16
IP 0.13
IP 0.08
IP 0.01
IP 0.01
IP 0.01
IP 0
HTML:
$mb_bytes = array();
foreach ($topTenIp as $val) {
$bytes_ips[$val] = shell_exec("grep $val /path/file | awk '{print $10}'");
$add = array_sum(explode("\n", $bytes_ips[$val]));
$add = $add / 1024 / 1024;
$add = round($add, 2);
array_push($mb_bytes, $add);
}
if($mb_bytes)
arsort($mb_bytes);
$resultArr = array();
foreach($topTenIp as $ip){
$byte = array_shift($mb_byte);
$resultArr = array('id' => $ip, 'byte' => $byte);
}
错误消息:array_shift()期望参数1为数组,给定
为null答案 0 :(得分:0)
您可以尝试首先在控制器中预处理您的两个$mb_byte
和$resultArr
个变量将它们组合在一个单独的数组中'ip'
为每个项目保留'byte'
和{{ 1}}然后在$ resultArr数组上循环,就像这样
@foreach($resultArr as $item)
<tr>
<td> {{ $item['ip'] }} </td>
<td> {{ $item['byte'] }} </td>
</tr>
@endforeach
你会得到像这样的输出
IP 1.56
IP 0.61
...
<强>更新强>
你可以将你的2个变量与简单的php逻辑结合起来
重要如果您count($topTenIp)
== count($mb_byte)
那么您可以将它们组合起来
$resultArr = array();
foreach($topTenIp as $ip){
$byte = array_shift($mb_byte);
$resultArr = array('id' => $ip, 'byte' => $byte);
}
然后传递并在模板中使用$ resultArr
答案 1 :(得分:0)
尝试将值赋给变量而不是数组条目。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="side-menu" class="sidebar-nav span2">
<div class="sidebar-link"><span>Link 1</span></div>
<div class="sidebar-link"><span>Link 2</span></div>
</div>