如何在一个中运行两个foreach循环(laravel)

时间:2019-07-16 16:34:18

标签: php laravel

嗨,我的代码包含两个数组,我想用表中的foreach()循环来回显它们,但是有一个问题是php不允许我在一个循环中运行两个数组

像这样:

@foreach ($playerinfo1 as $info1 && $playerinfo2 as $info2)
            <tr>
                        <td>{{$info1->id}}</td>
                        <td>{{$info1->authid}}</td>
                        <td>{{$info1->nick}}</td>
                        <td>{{$info1->date}}</td>
                        <td>{{$info1->uses}}</td>
                        <td>{{$info2->rounds}}</td>
                        <td>{{$info2->time}}</td>
                        <td>{{$info2->connects}}</td>
                        <td><a href="http://ip-api.com/#{{$info1->ip}}"> 
{{$info1->ip}}</a></td>
                   </tr>
        @endforeach

我尝试了这些代码,但是它们有问题,并且它们多次回显该值:

        @foreach ($playerinfo1 as $info1)
        <tr>
                    <td>{{$info1->id}}</td>
                    <td>{{$info1->authid}}</td>
                    <td>{{$info1->nick}}</td>enter code here
                    <td>{{$info1->date}}</td>
                    <td>{{$info1->uses}}</td>
                    <td><a href="http://ip-api.com/#{{$info1->ip}}">

{{$info1->ip}}</a></td>
                @foreach ($playerinfo2 as $info2)
                        <td>{{$info2->rounds}}</td>
                        <td>{{$info2->time}}</td>
                        <td>{{$info2->connects}}</td>
             </tr>
            @endforeach
    @endforeach

    @foreach ($playerinfo1 as $info1)
        <tr>
                    <td>{{$info1->id}}</td>
                    <td>{{$info1->authid}}</td>
                    <td>{{$info1->nick}}</td>
                    <td>{{$info1->date}}</td>
                    <td>{{$info1->uses}}</td>
                    <td><a href="http://ip-api.com/#{{$info1->ip}}">{{$info1->ip}}</a></td>
            @foreach ($playerinfo2 as $info2)
                    <td>{{$info2->rounds}}</td>
                    <td>{{$info2->time}}</td>
                    <td>{{$info2->connects}}</td>
         </tr>
        @endforeach
    @endforeach

    @foreach ($playerinfo1 as $info1)
        <tr>
                    <td>{{$info1->id}}</td>
                    <td>{{$info1->authid}}</td>
                    <td>{{$info1->nick}}</td>
                    <td>{{$info1->date}}</td>
                    <td>{{$info1->uses}}</td>
                    <td><a href="http://ip-api.com/#{{$info1->ip}}">{{$info1->ip}}</a></td>
            @endforeach
            @foreach ($playerinfo2 as $info2)
                    <td>{{$info2->rounds}}</td>
                    <td>{{$info2->time}}</td>
                    <td>{{$info2->connects}}</td>
         </tr>
        @endforeach

我也使用array_combine()来组合两个数组,但是由于键和值之间的差异,它不起作用

$ playerinfo1(array):

array:15 [▼
  0 => {#213 ▼
    +"id": 1
    +"authid": "STEAM_0:0:546411185"
    +"nick": "BesTKiLLeR"
    +"date": "2019-05-24 21:22:25"
    +"uses": 62
    +"ip": "188.211.128.180"
  }
  1 => {#215 ▼
    +"id": 2
    +"authid": "STEAM_0:0:21578434"
    +"nick": "ArTTam"
    +"date": "2019-05-23 22:29:43"
    +"uses": 21
    +"ip": "86.55.174.70"
  }
  2 => {#216 ▶}
  3 => {#217 ▶}
  9 => {#223 ▶}
  10 => {#224 ▶}
  11 => {#225 ▶}
  12 => {#226 ▶}
  26 => {#240 ▶}
  32 => {#246 ▶}
  34 => {#248 ▶}
  35 => {#249 ▶}
  38 => {#252 ▶}
  39 => {#253 ▶}
  45 => {#259 ▶}
]

$ playerinfo2(array):

array:16 [▼
  0 => {#264 ▼
    +"id": 1
    +"connects": 65
    +"rounds": 305
    +"time": 38579
  }
  1 => {#265 ▼
    +"id": 2
    +"connects": 37
    +"rounds": 124
    +"time": 17257
  }
  2 => {#266 ▶}
  3 => {#267 ▶}
  4 => {#268 ▶}
  5 => {#269 ▶}
  6 => {#270 ▶}
  7 => {#271 ▶}
  8 => {#272 ▶}
  9 => {#273 ▶}
  10 => {#274 ▶}
  11 => {#275 ▶}
  12 => {#276 ▶}
  13 => {#277 ▶}
  14 => {#278 ▶}
  15 => {#279 ▶}
]

恐怕我无法说明我的意思,但是希望您通过看一下这段代码来了解我的意思enter code here

2 个答案:

答案 0 :(得分:0)

您可以在控制器中使用array_merge($ arr1,$ arr2) 合并两个数组

答案 1 :(得分:0)

您正在使用Laravel,您的数据来自两个表。为什么不使用雄辩的关系呢?这样会容易得多。

@foreach ($players as $player)
    <tr>

        <td>{{$player->id}}</td>
        <td>{{$player->authid}}</td>
        <td>{{$player->nick}}</td>enter code here
        <td>{{$player->date}}</td>
        <td>{{$player->uses}}</td>
        <td><a href="http://ip-api.com/#{{$player->ip}}">{{$player->ip}}</a></td>

        <!-- Use a relationship (e.g., stats) to get additional data -->
        <td>{{$player->stats->rounds}}</td>
        <td>{{$player->stats->time}}</td>
        <td>{{$player->stats->connects}}</td>

    </tr>
@endforeach