tags:

views:

51

answers:

3

Hello there,

I need to sort arrays inside an array of array based on one of the array's array value.

For example:

$data = array( array( 1, "Article One", 132, 12402773, 3 ),
               array( 2, "Article Two", 251, 12519283, 5 ),
               array( 3, "Article Three", 107, 12411321, 3 ),
               array( 4, "Article Four", 501, 12228135, 4 ) );

By default, if I print the 2nd element of each array:

  • Article One
  • Article Two
  • Article Three
  • Article Four

I need to sort it in a descending order by the 3rd element of the child-array.

So it would be like this:

  • Article Four
  • Article Two
  • Article One
  • Article Three

Because 501 > 251 > 132 > 107.

Any suggestion?

+2  A: 

array_multisort :)

Tor Valamo
+3  A: 

I typically use a usort() for this:

function compare($a, $b) {
    return ($a[2] > $b[2]);
}

usort($data, 'compare');
willoller
This is one of my favorite functions in php, especially with the uasort variant that preserves keys.
Dave
I Agree this is the way to go. usort/uasort dpending on the situation.
mmundiff
A: 

You will need to use recursion.

Check these links out:

Check this out first - Link Five

Colour Blend