By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,383 Members | 2,067 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,383 IT Pros & Developers. It's quick & easy.

Sorting a Multidimensional Array

P: n/a
I have an array like this:

$events = array(
array(
'2003-07-01',
'Event Title 1',
'1' //ID Number (not unique)
),
array(
'2003-07-02',
'Event Title 3',
'22'
),
array(
'2003-07-06',
'Event Title 3',
'35'
)
);
I want to sort it by date. How would I do it?

I read the documentation for usort(), but I can't get it to work right.
Any suggestions?
Jul 16 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Thank you so much, Jason. I didn't understand what the extra function
was for until you posted that.

It works perfectly, now. Thanks again.

Sorting by date from the usort docs on php.net - sorting a
multidimensional array:

<begin>
function cmp ($a, $b) {
//return strcmp($a["fruit"], $b["fruit"]);
// in the case of the above array
// note we are comparing the first element of each array
if ( $a[0] < $b[0] ) {
return -1;
}
if ( $a[0] > $b[0] ) {
return 1;
}
// they are equal
return 0;
}

// we're using the array supplied above by Brian
/*
$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";
*/

// again, using data supplied by Brian
usort($events, "cmp");
//usort($fruits, "cmp");
<end>

This should sort the multidimensional array by the first element (index
0). Incidentally, you could make it sort in descending order by
switching the 1 and -1 in the "cmp" function.

Also, doing this in objects gets kind of tricky, read the user supplied
notes, there's a lot of useful stuff in there.

Jason


Jul 16 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.