“未定义的偏移量”,哪里出错? (array,php)

时间:2015-12-11 14:27:17

标签: php arrays laravel

我做了一些包含一些内容的数组,它的工作非常完美!现在我将数组返回到我的视图(html),并希望在我的HTML中使用它..但它给了我这个错误信息:

Undefined offset: 2 (View: /path/data.blade.php)

但是我不明白为什么..在我的控制器中它一切都很好..阵列工作得很好而且我回到html也没错(至少我看不到一个)

$ipsWithBytesDates = [];
        foreach ($topTenIp as $val)
        {
            $byte_execResult = shell_exec("grep $val /path/domain.log | awk '{print $10}'");
            $add = array_sum(explode("\n", $byte_execResult));
            $add = $add / 1024 / 1024;
            $add = round($add, 2);

        $date_execResult = shell_exec("grep $val /path/domain.log |  awk '{print $4,$5}'");
        $date_array = explode("\n", $date_execResult);
        $date_array_pop = array_pop($date_array);
        $mylastelement = end($date_array);

        $ipsWithBytesDates[] = [
            'ip' => $val,
            'bytes' => $add,
            'dates' => $mylastelement,
        ];
    }

    uasort($ipsWithBytesDates, function($a, $b) {
        if ($a['bytes'] == $b['bytes'])
            return 0;
        elseif ($a['bytes'] < $b['bytes'])
            return 1;
        else
            return -1;
    });

    uasort($ipsWithBytesDates, function($a, $b) {
        if ($a['dates'] == $b['dates'])
            return 0;
        elseif ($a['dates'] < $b['dates'])
            return 1;
        else
            return -1;
    });

我正在返回这样的变量:

 return view('/domains/data', [
            'ipsWithBytesDates' => $ipsWithBytesDates,
        ]);

我的html看起来像这样:

@foreach($ipsWithBytesDates as $item)
                        <tr>
                            <td>{{ $item['ip'] }}</td>
                            <td>{{ $item['bytes'] }}</td>
                            <td> {{ $item['dates'] }}</td>
                        </tr>
@endforeach

我真的找不到错误......我被卡住了,有人可以查看我的代码,也许会找到我的错误吗?

1 个答案:

答案 0 :(得分:0)

return view('/domains/data', [ 'ipsWithBytesDates' => $ipsWithBytesDates, ]);

应该是

return view('/domains/data', [ 'ipsWithBytesDates' => $ipsWithBytesDates ]);

如果这不起作用,请在返回视图前粘贴dd($ipsWithBytesDates),并检查要传递给视图的阵列的结构。

根据该结构,您可以获得数组的正确(key =&gt;值)。