|
Posted by ZeldorBlat on 03/28/07 01:51
On Mar 27, 5:20 pm, Schraalhans Keukenmeester <bitbuc...@invalid.spam>
wrote:
> I'm having a hard time getting to grips with this function.
>
> I have an array shaped like this:
>
> $dircontents[0]['filename'] ='index.html'
> $dircontents[0]['owner'] = 'www'
> $dircontents[0]['group'] = 'www'
> $dircontents[0]['type'] = 'file'
>
> $dircontents[1]['filename'] ='images'
> $dircontents[1]['owner'] = 'www'
> $dircontents[1]['group'] = 'www'
> $dircontents[1]['type'] = 'dir'
>
> etc.
>
> 'type' can be any of {dir,file,link}
>
> How do I get the array sorted, alphabetically, first by type, then filename?
> My attempts sofar have lead to a seemingly unsorted array, not even
> close to anything recognizable. Is array_multisort() even what I should
> be looking for?
>
> Help appreciated!
> Sh.
Try usort() instead:
function cmp($a, $b) {
if($a['type'] < $b['type'])
return -1;
elseif($a['type'] > $b['type'])
return 1;
elseif($a['filename'] < $b['filename'])
return -1;
elseif($a['filename'] > $b['filename'])
return 1;
else
return 0;
}
usort($dircontents, 'cmp');
Navigation:
[Reply to this message]
|