Re: Re: Array Sorting Headaches
| From: | Burhan Khalid | Date: | Mon, 19 Apr 2004 12:20:32 +0000 |
| Subject: | Re: Re: Array Sorting Headaches | ||
| References: | 1 2 3 4 5 6 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-183799@lists.php.net to get a copy of this message | ||
Torsten Roehr wrote:
Thanks for the help. I'll give that snippet a try and see what comes out. The array is a result of a rather nasty SQL statement running against a database (which I didn't design). Unfortunately, the way the database is designed, its very difficult to extract the domain information. I am in the process of rewriting the entire thing as a Java application, hopefully that will make things a bit clearer, since I'll also be refactoring the database schema. Many thanks, BurhanWell, it does some sorting, but not quite what I'm after :( I've managed to get the list so that all the (sub) entries are sorted in the correct order. Now its just a matter of finding the highest expire date for /each/ domain, and delete the other entries for that domain. So, in the end, all that's left is one entry per domain, with its latest expire date. Hopefully this makes it a bit clearer.OK, so it's just the other way round - I see. Instead of deleting the entry with the highest expiry date we delete all the others: foreach ($foo as $key => $value) {$tempArray = array();foreach ($value as $subkey => $subvalue) {// add expires value only to the temporary array forsorting$tempArray[$subkey] = $foo[$key][$subkey]['expires']; }// sort array by value descending arsort($tempArray);/* new stuff starts here */ // remove the entry with the latest expiry (the first arrayelement)array_push($tempArray);// now unset all remaining/not needed entries foreach ($tempArray as $tempKey => $tempValue) {unset($foo[$key][$tempKey]); }} By the way, isn't there a way to filter this stuff BEFORE or WHILE the whole array is created?