2016-05-20 4 views
0

У меня есть многомерный массив и вы хотите сортировать по дате, а также хотите получить только 5 данных из массива.Как отсортировать многомерный массив с помощью Php?

Массив:

Array 
(
    [0] => Array 
     (
      [ID] => 1 
      [TITLE] => example1 
      [DATE] => 2016-05-17 
      [PST_BY] => 0 
      [IMG_NM] => 
      [SLUG] => 
      [NAME] => Web Design & Development 
     ) 

    [1] => Array 
     (
      [ID] => 2 
      [TITLE] => example2 
      [DATE] => 2016-05-20 
      [PST_BY] => 0 
      [IMG_NM] => 
      [SLUG] => 
      [NAME] => Mobile OS 
     ) 
) 

Я делаю это, но не работаю:

$list = array_sort($blog, 'DATE', SORT_ASC); 
print_r($list); 
+1

_want получить только 5 данных из array._ Что это значит? –

+0

Нет функции 'array_sort()'] (http://php.net/manual-lookup.php?pattern=array_sort) в PHP? Можете ли вы показать нам свою функцию? – RobIII

+0

это означает, что если у меня есть 10 данных, тогда я хочу только 5 данных с сортировкой по дате. –

ответ

-1

Пример для сортировки по определенному ключу (в данном случае name):

// Function to compare two items in the array 
function CompareName($left, $right) { 
    return $left['name'] > $right['name']; 
} 

// Example array/data 
$myarray = [ 
    ["id"=>1, "name"=>"foo"], 
    ["id"=>2, "name"=>"bar"], 
    ["id"=>3, "name"=>"ah"], 
    ["id"=>4, "name"=>"zoo"] 
]; 

echo 'Unsorted:'; 
var_dump($myarray); 

usort($myarray , 'CompareName'); 

echo 'Sorted:'; 
var_dump($myarray); 

хочу получить только 5 данных из массива

$top5 = array_slice($myarray, 0, 5); 

или:

$top5 = array_splice($myarray, 0, 5); 
+0

Я думал, что usort с обратным вызовом – peter

+0

usort/uasort; для этого примера оба работают. Это зависит от фактических требований, которые OP хочет использовать. Но вопрос слишком расплывчатый ... – RobIII

Смежные вопросы