Reputation: 50318
How can I sort an array based on two specific values within the array? For instance:
$arr = array(
array('a' => array('field1' => 'Abc', 'field2' => 'Def'), 'b' => 0)
array('a' => array('field1' => 'Ghi', 'field2' => 'Jkl'), 'b' => 0)
);
I want to sort this array based on the $arr[$i]['a']['field1']
variable. How can I do that?
Upvotes: 3
Views: 7165
Reputation: 53940
in this particular case (sort on very first item of the very first subarray), simple sort() will be enough.
Upvotes: 1
Reputation: 1216
Create your own comparison function and use uasort
http://us.php.net/manual/en/function.uasort.php
Upvotes: 1
Reputation: 7834
Give this a try:
function cmp($a, $b) {
if ($a['a']['field1'] == $b['a']['field1'] )
return 0;
return ( $a['a']['field1'] < $b['a']['field1'] ) ? -1 : 1;
}
uasort($arr, 'cmp');
This is just a slight alteration of the example provided on the PHP documentation page: http://www.php.net/manual/en/function.uasort.php
Upvotes: 8