как отсортировать элементы в массиве по одному конкретному значению - PullRequest
0 голосов
/ 12 июля 2019

У меня есть массив с элементами, и каждый элемент имеет несколько значений.Мне нужно отсортировать элементы в массиве по значению 'level', а затем мне нужно отобразить какой-то фрагмент кода для каждого элемента.

База данных выглядит примерно так.

$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 - это один элемент (массив) в базе данных большого массива.В большой базе данных у меня есть все предметы.

1 Ответ

1 голос
/ 12 июля 2019

Вы можете использовать это для сортировки подмассива по значению:

In <= PHP 5.6: </p>

usort($database, function ($a, $b) {
    return $a['level'] - $b['level'];
});

In> = PHP 7.0:

usort($database, function ($a, $b) {
    return $a['level'] <=> $b['level'];
});

Затем получите первые 20 предметов (можно заменить 20 на число х):

$output = array_slice($database, 0, 20);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...