我有一个包含项目的数组,每个项目都有几个值。 我需要按值“级别”对数组中的项目进行排序,然后我需要为每个项目回显一些代码。
数据库看起来像这样。
$database= [
[
'name'=> 'item_one',
'preview_href'=> 'item_one.php',
'img_src'=> 'pictures/item_one.jpg',
'level'=> 5.9,
'description'=> 'This product is.....' ,
],
[
'name'=> 'item_two',
'preview_href'=> 'item_two.php';
'img_src'=> 'pictures/item_two.jpg',
'level'=> 7.5,
'description'=> 'This product is.....' ,
],
];
我已经尝试过类似的方法,但是没有用。
function top_items($two)
{
$two= arsort($two);
foreach (array_slice($two, 0, 20) as $one)
{
echo '<div class="item">
<a href="'. $one['preview_href'].'">
<img src="' . $one['img_src'] .'">
<p> '.$one['name'].' (' . $one['release']. ') </p>
</a>
</div>';
}
};
我的预期输出:我需要对前20个或具有最大['level']值的任意数量的项目使用此代码:
echo '<div class="item">
<a href="'. $one['preview_href'].'">
<img src="' . $one['img_src'] .'">
<p> '.$one['name'].' (' . $one['release']. ') </p>
</a>
</div>';
$ one是大数组数据库中的一个项目(数组)。在大型数据库中,我拥有所有项目。
答案 0 :(得分:1)
您可以像这样使用值对子数组进行排序:
在<= PHP 5.6中:
usort($database, function ($a, $b) {
return $a['level'] - $b['level'];
});
在> = PHP 7.0中:
usort($database, function ($a, $b) {
return $a['level'] <=> $b['level'];
});
然后获得前20个项目(可以用x代替20):
$output = array_slice($database, 0, 20);