Thanks in advance for your help
Jonathan Pitcher
################################################### Begin Code ###################################################
I have a multilevel array:
$EA = array(); $EA[0]["STARTDATE"] = "2003:03:01"; $EA[0]["ENDDATE"] = "2003:03:01"; $EA[0]["STARTTIME"] = "7:30"; $EA[0]["ENDTIME"] = "8:30"; $EA[1]["STARTDATE"] = "2003:02:01"; $EA[1]["ENDDATE"] = "2003:03:01"; $EA[1]["STARTTIME"] = "7:30"; $EA[1]["ENDTIME"] = "8:30"; $EA[2]["STARTDATE"] = "2003:03:01"; $EA[2]["ENDDATE"] = "2003:03:01"; $EA[2]["STARTTIME"] = "8:30"; $EA[2]["ENDTIME"] = "9:30"; $EA[3]["STARTDATE"] = "2003:03:01"; $EA[3]["ENDDATE"] = "2003:03:01"; $EA[3]["STARTTIME"] = "7:30"; $EA[3]["ENDTIME"] = "8:30"; $EA[4]["STARTDATE"] = "2003:03:01"; $EA[4]["ENDDATE"] = "2003:03:02"; $EA[4]["STARTTIME"] = "7:30"; $EA[4]["ENDTIME"] = "8:30";
usort($EA, "compareall"); print_r($EA); function compareall($A, $B) { if ($A["STARTDATE"] < $B["STARTDATE"]) { return 4; } else if ($A["STARTTIME"] < $B["STARTTIME"]) { return 3; } else if ($A["ENDDATE"] > $B["ENDDATE"]) { return 2; } else if ($A["ENDTIME"] > $B["ENDTIME"]) { return 1; } else if ($A["STARTDATE"] > $B["STARTDATE"]) { return -4; } else if ($A["STARTIME"] > $B["STARTTIME"]) { return -3; } else if ($A["ENDDATE"] < $B["ENDDATE"]) { return -2; } else if ($A["ENDTIME"] < $B["ENDTIME"]) { return -1; } else { return 0; } }
This prints:
Array ( [0] => Array ( [STARTDATE] => 2003:03:01 [ENDDATE] => 2003:03:01 [STARTTIME] => 7:30 [ENDTIME] => 8:30 )
[1] => Array ( [STARTDATE] => 2003:03:01 [ENDDATE] => 2003:03:01 [STARTTIME] => 7:30 [ENDTIME] => 8:30 )
[2] => Array ( [STARTDATE] => 2003:03:01 [ENDDATE] => 2003:03:02 [STARTTIME] => 7:30 [ENDTIME] => 8:30 )
[3] => Array ( [STARTDATE] => 2003:02:01 [ENDDATE] => 2003:03:01 [STARTTIME] => 7:30 [ENDTIME] => 8:30 )
[4] => Array ( [STARTDATE] => 2003:03:01 [ENDDATE] => 2003:03:01 [STARTTIME] => 8:30 [ENDTIME] => 9:30 )
) I want it to print this:
Array ( [0] => Array ( [STARTDATE] => 2003:02:01 [ENDDATE] => 2003:03:01 [STARTTIME] => 7:30 [ENDTIME] => 8:30 )
[1] => Array ( [STARTDATE] => 2003:03:01 [ENDDATE] => 2003:03:01 [STARTTIME] => 7:30 [ENDTIME] => 8:30 )
[2] => Array ( [STARTDATE] => 2003:03:01 [ENDDATE] => 2003:03:01 [STARTTIME] => 7:30 [ENDTIME] => 8:30 )
[3] => Array ( [STARTDATE] => 2003:03:01 [ENDDATE] => 2003:03:01 [STARTTIME] => 8:30 [ENDTIME] => 9:30 )
[4] => Array ( [STARTDATE] => 2003:03:01 [ENDDATE] => 2003:03:02 [STARTTIME] => 7:30 [ENDTIME] => 8:30 )
)