получить только 5 элементов из массива - PullRequest
2 голосов
/ 25 июля 2009

мой массив настроен следующим образом:

array
  'testuri/abc' => 
    array
      'label' => string 'abc' (length=3)
      'weight' => float 5
  'testuri/abd' => 
    array
      'label' => string 'abd' (length=3)
      'weight' => float 2
  'testuri/dess' => 
    array
      'label' => string 'dess' (length=4)
      'weight' => float 2
  'testuri/gdm' => 
    array
      'label' => string 'gdm' (length=3)
      'weight' => float 2
  'testuri/abe' => 
    array
      'label' => string 'abe' (length=3)
      'weight' => float 2
  'testuri/esy' => 
    array
      'label' => string 'esy' (length=3)
      'weight' => float 2
  'testuri/rdx' => 
    array
      'label' => string 'rdx' (length=3)
      'weight' => float 3
  'testuri/tfc' => 
    array
      'label' => string 'tfc' (length=3)
      'weight' => float 3

Я хочу получить / отфильтровать 5 элементов с помощью значков 'weight'. Есть ли функция php, чтобы сделать это?

PS. Моя идея заключалась в том, чтобы использовать foreach

1 Ответ

7 голосов
/ 25 июля 2009

Сортировка массива по значению веса в порядке убывания, а затем получение первых пяти значений:

function cmpByWeight($a, $b) {
    return $b['weight'] - $a['weight'];
}
uasort($array, 'cmpByWeight');
$firstFive = array_slice($array, 0, 5);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...