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

Insert each array value into new line in Laravel Blade view

现在,当我对数组进行排序和计数后,我想在 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
]);

有问题的部分是blade

中的这个
<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) 
}

您可以尝试这样的操作:

@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() 将 return 类似于:

[user_id] => int(number_of_times_that_user_id_appear)

所以:

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

所以用户12分,用户2 1点,用户31点,用户42分。

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