现在,当我拥有已排序和计数的数组时,我想在刀片模板上显示结果。该页面如下所示
@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)
}
答案 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