我在Laravel中有一个数组。我想在索引页面上显示此数组的一些值。
我的数组:
$product = [
'0' => array(
'name' => 'product1',
'count' => '30'
),
'1' => array(
'name' => 'product2',
'count' => '2'
),
'2' => array(
'name' => 'product3',
'count' => '5'
),
'3' => array(
'name' => 'product4',
'count' => '33'
),
'4' => array(
'name' => 'product5',
'count' => '30'
),
'5' => array(
'name' => 'product6',
'count' => '29'
)];
我想从最高数量到最低数量显示,并将其限制为4个计数。
像这样
<h2>product4</h2>
<p>33</p>
<hr>
<h2>product1</h2>
<p>30</p>
<hr>
<h2>product5</h2>
<p>30</p>
<hr>
<h2>product6</h2>
<p>29</p>
<hr>
答案 0 :(得分:3)
尝试
$sortedarray = collect($product)->sortBy('count')->reverse()->take(4)->toArray();
答案 1 :(得分:2)
排序的数组推入foreach
循环:
public function getSortedProducts(){
$product = [
'0' => array(
'name' => 'product1',
'count' => '30'
),
'1' => array(
'name' => 'product2',
'count' => '2'
),
'2' => array(
'name' => 'product3',
'count' => '5'
),
'3' => array(
'name' => 'product4',
'count' => '33'
),
'4' => array(
'name' => 'product5',
'count' => '30'
),
'5' => array(
'name' => 'product6',
'count' => '29'
)];
array_multisort(array_column($product, 'count'), SORT_DESC, $product);
return view('your_blade_name',compact('product'));
}
刀片:
@foreach($product as $row)
@if($loop->iteration > 5) // or other logic
@break
@endif
<h3>{{ $row['name'] }}</h3>
<p>{{ $row['count'] }}</p>
<hr>
@endforeach
答案 2 :(得分:1)
尝试使用array_multisort
(documentation)
array_multisort(array_column($product, 'count'), SORT_DESC, $product);
echo '<pre>';
print_r($product);
exit;
答案 3 :(得分:0)
使用 usort 功能
function sortByCount($a, $b) {
return $b['count'] - $a['count'];
}
usort($product,'sortByCount');
print_r($product);
foreach($product as $k => $val){
if($k <= 3){
echo "Your HTML";
echo '<br/>';
}
}
答案 4 :(得分:0)
尝试一下
array_multisort
array_multisort(array_column($product, 'count'), SORT_DESC, $product);
echo '<pre>';
for ($i=0; $i <4 ; $i++) {
print_r($product[$i]);
}
exit;
引用链接 here
答案 5 :(得分:0)
您可以尝试以下代码:
$sorted = collect($product)->sortByDesc('count')->toArray(); // for sort array
$output = array_slice($sorted, 0, 4); // for return first four indexs
答案 6 :(得分:-1)
使用 array_multisort :
f = open("56ad62-json.log", encoding="utf-8")
qq=f.readline()
print(qq)
{"log":\"message\": \"\\u0410\\u0432\\u0442\\u043e\\u0440\\u0438\\u0437\\u0430\\u0446\\u0438\\u044f \\u043f\\u043e\\u043b\\u044c\\u0437\\u043e\\u0432\\u0430\\u0442\\u0435\\u043b\\u044f\"}
(qq.encode().decode("unicode-escape").encode().decode("unicode-escape"))
# '{"log":"message": "Авторизация пользователя"}\n'