0

I want to sort my multidimensional array with two index key. Let me give you example,

here, what I am getting by query.

Array
(
    [0] => Array
        (
            [cmp_id] => 33
            [cmp_name] => CONF
            [mod_pin] => 6811
            [provider_name] => test2
            [meeting_count] => 68
            [total_participant] => 123
            [total_dur] => 353:25:00
            [web_dur] => 575.19
            [did_dur] => 1.78
        )

    [1] => Array
        (
            [cmp_id] => 33
            [cmp_name] => MCONF
            [mod_pin] => 1908
            [provider_name] => test2
            [meeting_count] => 4
            [total_participant] => 7
            [total_dur] => 10:19:00
            [web_dur] => 17.7
            [did_dur] => 0
        )

    [2] => Array
        (
            [cmp_id] => 1
            [cmp_name] => MT0001
            [mod_pin] => 1662
            [provider_name] => mob_test
            [meeting_count] => 3
            [total_participant] => 5
            [total_dur] => 20:18:00
            [web_dur] => 22.05
            [did_dur] => 0
        )

    [3] => Array
        (
            [cmp_id] => 1
            [cmp_name] => MT0001
            [mod_pin] => 1234
            [provider_name] => mob_test
            [meeting_count] => 4
            [total_participant] => 10
            [total_dur] => 16:40:00
            [web_dur] => 17.77
            [did_dur] => 0
        )

)

I want to sort it by provider_name and than mod_pin.

It want like this

Array
(
    [0] => Array
        (
            [cmp_id] => 33
            [cmp_name] => CONF
            [mod_pin] => 1908
            [provider_name] => test2
            [meeting_count] => 4
            [total_participant] => 7
            [total_dur] => 10:19:00
            [web_dur] => 17.7
            [did_dur] => 0
        )
    [1] => Array
        (
            [cmp_id] => 33
            [cmp_name] => CONF
            [mod_pin] => 6811
            [provider_name] => test2
            [meeting_count] => 68
            [total_participant] => 123
            [total_dur] => 353:25:00
            [web_dur] => 575.19
            [did_dur] => 1.78
        )

[2] => Array
        (
            [cmp_id] => 1
            [cmp_name] => MT0001
            [mod_pin] => 1234
            [provider_name] => mob_test
            [meeting_count] => 4
            [total_participant] => 10
            [total_dur] => 16:40:00
            [web_dur] => 17.77
            [did_dur] => 0
        )
    [3] => Array
        (
            [cmp_id] => 1
            [cmp_name] => MT0001
            [mod_pin] => 1662
            [provider_name] => mob_test
            [meeting_count] => 3
            [total_participant] => 5
            [total_dur] => 20:18:00
            [web_dur] => 22.05
            [did_dur] => 0
        )
)

Thanks in advance.

Ghanshyam Katriya
  • 1,071
  • 1
  • 11
  • 37
  • 1
    Possible duplicate of [Sort Multi-dimensional Array by Value](http://stackoverflow.com/questions/2699086/sort-multi-dimensional-array-by-value) – ar34z Dec 09 '15 at 13:28

1 Answers1

0

You need array_multisort

# get a list of sort columns and their data to pass to array_multisort
$sort = array();
foreach($myArray as $k=>$v) {
    $sort['provider_name'][$k] = $v['provider_name'];
    $sort['mod_pin'][$k] = $v['mod_pin'];
}
# sort by provider_name  and then title mod_pin
array_multisort($sort['provider_name'], SORT_ASC, $sort['mod_pin'], SORT_ASC,$mylist);
abdul karim
  • 146
  • 1
  • 8