-2

How to sort/arrange associative array by key,I have an array like this

Array
(
    [0] => Array
        (
            [SF] => stdClass Object
                (
                   ['name']=>Miller
                   ['age']=>25
                   ['gender']=>M
                )

            [PF] => stdClass Object
                (
                   ['name']=>Dirk
                   ['age']=>30
                   ['gender']=>M
                )

            [SG] => stdClass Object
                (
                   ['name']=>Marcin
                   ['age']=>24
                   ['gender']=>M
                )

            [PG] => stdClass Object
                (
                   ['name']=>Julit
                   ['age']=>23
                   ['gender']=>F
                )

            [F] => stdClass Object
                (
                   ['name']=>Alex
                   ['age']=>21
                   ['gender']=>M
                )

            [G] => stdClass Object
                (
                  ['name']=>Andrew
                   ['age']=>22
                   ['gender']=>M
                )

            [C] => stdClass Object
                (
                   ['name']=>kevin
                   ['age']=>26
                   ['gender']=>M
                )

            [UTIL] => stdClass Object
                (
                   ['name']=>John
                   ['age']=>24
                   ['gender']=>M
                )
        )
     )

I want to sort/arrange the above array like this PG,SG,SF,PF,C,G,F,UTIL This is how my array should looks like after sort:

Array
(
    [0] => Array
        (

            [PG] => stdClass Object
                (
                   ['name']=>Julit
                   ['age']=>23
                   ['gender']=>F
                )
            [SG] => stdClass Object
                (
                   ['name']=>Marcin
                   ['age']=>24
                   ['gender']=>M
                )
            [SF] => stdClass Object
                (
                   ['name']=>Miller
                   ['age']=>25
                   ['gender']=>M
                )

            [PF] => stdClass Object
                (
                   ['name']=>Dirk
                   ['age']=>30
                   ['gender']=>M
                )
            [C] => stdClass Object
                (
                   ['name']=>kevin
                   ['age']=>26
                   ['gender']=>M
                )
           [G] => stdClass Object
                (
                  ['name']=>Andrew
                   ['age']=>22
                   ['gender']=>M
                )

            [F] => stdClass Object
                (
                   ['name']=>Alex
                   ['age']=>21
                   ['gender']=>M
                )
            [UTIL] => stdClass Object
                (
                   ['name']=>John
                   ['age']=>24
                   ['gender']=>M
                )
        )
     )

Any idea how can I achieve the same?

Rahul
  • 430
  • 6
  • 20

1 Answers1

1

Being a custom order you can't use any built in PHP sort function. A simple way of doing it would be:

$sort = array('PG', 'SG', 'SF', 'PF', 'C', 'G', 'F', 'UTIL');

$result = array();

foreach ($sort as $key) {
    $result[0][$key] = $myArray[0][$key];
}

var_dump($result);
Mihai Matei
  • 22,929
  • 3
  • 29
  • 46