在Laravel Blade视图中将每个数组值插入新行

时间:2017-07-20 13:16:40

标签: laravel laravel-4 laravel-blade

现在,当我拥有已排序和计数的数组时,我想在刀片模板上显示结果。该页面如下所示

@foreach($best as $info)
    <li class="list-group-item">
        <div class="row">
             <div class="col-md-2 col-xs-12">
               <span class="col-xs-6 "><strong>User Number:</strong></span> {{ $info->user_id }}
             </div>
             <div class="col-md-3 col-xs-12">
                 <span class="col-xs-6">Username:</span> {{ $info->username }} 
             </div>
             <div class="col-md-3">
                 <span class="col-xs-6">Points:</span>
                    @foreach($sums as $value => $sum) 
                         {{$sum}} 
                    @endforeach
             </div>
        </div>
    </li>
@endforeach

在控制器中没什么好看的:

$best = Users::all();
$sums = array_count_values($product_ids);

return View::make('users.statistics', [
        'best' => $best,
        'sums' => $sums
]);

有问题的部分是刀片中的这个部分

<div class="col-md-3">
    <span class="col-xs-6">Points:</span>
        @foreach($sums as $value => $sum) 
            {{$sum}} 
        @endforeach
</div>

如果我有两个用户,我应该得到像

这样的输出
User Number       Username         Points
    1               user1            10
    2               user2            11 

相反,因为我有第二个foreach(注意点列

User Number       Username         Points

    1               user1           10 11
    2               user2           10 11

有没有办法管理自己行上的每个点

var_dump($product_ids);
array(5) { 
    [0]=> int(2) 
    [1]=> int(1) 
    [2]=> int(1) 
    [3]=> int(1) 
    [4]=> int(1) 
}

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

@foreach($best as $info)
    <li class="list-group-item">
        <div class="row">
             <div class="col-md-2 col-xs-12">
               <span class="col-xs-6 "><strong>User Number:</strong></span> {{ $info->user_id }}
             </div>
             <div class="col-md-3 col-xs-12">
                 <span class="col-xs-6">Username:</span> {{ $info->username }} 
             </div>
             <div class="col-md-3">
                 <span class="col-xs-6">Points:</span>
                    {{$sums[$info->user_id]}} 
             </div>
        </div>
    </li>
@endforeach

您正在使用名为array_count_values的方法。这会计算数组的所有值。

我猜$products_ids是一个包含用户ID的数组。
因此,如果您的$products_ids看起来像:

array(1,2,1,3,4,4)

array_count_values()会返回如下内容:

[user_id] => int(number_of_times_that_user_id_appear)

所以:

array(4) { 
   [1]=> int(2)
   [2]=> int(1) 
   [3]=> int(1) 
   [4]=> int(2) 
}

因此用户 1 2 点,用户 2 1 点,用户 3 < / strong>有 1 点,用户 4 2 点。

有关此功能的更多文档:http://php.net/manual/en/function.array-count-values.php