0
Array
(
    [0] => Array
        (
            [count] => 9
            [slug] => concediat-reangajat
        )

    [1] => Array
        (
            [count] => 7
            [slug] => salarii-5togo
        )

    [2] => Array
        (
            [count] => 10
            [slug] => piata-fortei-munca
        )

    [3] => Array
        (
            [count] => 3
            [slug] => productivitate-angajati
        )

    [4] => Array
        (
            [count] => 1
            [slug] => stocare-date
        )

    [5] => Array
        (
            [count] => 4
            [slug] => infrastructura-leadership
        )

    [6] => Array
        (
            [count] => 2
            [slug] => airbnb-uber
        )

    [7] => Array
        (
            [count] => 5
            [slug] => salarii-productivitate
        )

    [8] => Array
        (
            [count] => 2
            [slug] => ceo-resurse-umane
        )

    [9] => Array
        (
            [count] => 3
            [slug] => hr-ceo
        )

    [10] => Array
        (
            [count] => 1
            [slug] => burnout-tratament
        )

    [11] => Array
        (
            [count] => 1
            [slug] => angajati-vanzarea-afacerii
        )

    [12] => Array
        (
            [count] => 1
            [slug] => job-linkedin
        )

    [13] => Array
        (
            [count] => 1
            [slug] => primul-faliment
        )

    [14] => Array
        (
            [count] => 3
            [slug] => salariu-mic
        )

    [15] => Array
        (
            [count] => 1
            [slug] => varsta-programatori
        )

)


i want to sort this array based on decending order of count

this array contains arrays of data count and a slug variable i want to sort whole array based on descending order of count how i can sort this.. anybody can help me i tried usort,ksort etc am new in programming not getting a solution please help me i tried for a solution but its didnt work anybody can solve it?

ANGELA
  • 27
  • 5

2 Answers2

2

usort with callback will work for you.

usort($array, function($a, $b) {
    return $b['count'] - $a['count']; # $a['count'] - $b['count']; will sort asc
});

WORKING DEMO: https://3v4l.org/SUa2F

OR do simple with arsort($array);

WORKGING DEMO: https://3v4l.org/bnWuo

A l w a y s S u n n y
  • 36,497
  • 8
  • 60
  • 103
0

Reverse sort by count descending (and name ascending for like counts):

<?php

$items =
[
    ['count'=>2, 'name' => 'Janitor'],
    ['count'=>5, 'name' => 'Plumber'],
    ['count'=>1, 'name' => 'Scrubber'],
    ['count'=>3, 'name' => 'Winkle Picker'],
    ['count'=>3, 'name' => 'Window Cleaner']
];

usort($items, function($a, $b) {
    $compare = $b['count'] <=> $a['count'];
    if($compare == 0)
        $compare = $a['name'] <=> $b['name'];

    return $compare;
});

var_export($items);

Output:

array (
    0 => 
    array (
      'count' => 5,
      'name' => 'Plumber',
    ),
    1 => 
    array (
      'count' => 3,
      'name' => 'Window Cleaner',
    ),
    2 => 
    array (
      'count' => 3,
      'name' => 'Winkle Picker',
    ),
    3 => 
    array (
      'count' => 2,
      'name' => 'Janitor',
    ),
    4 => 
    array (
      'count' => 1,
      'name' => 'Scrubber',
    ),
  )
Progrock
  • 7,373
  • 1
  • 19
  • 25