Connecting Tech Pros Worldwide Help | Site Map

sorting an array.. need help

namemattersnot@msn.com
Guest
 
Posts: n/a
#1: Jan 30 '06
re,

i've have the following array:

files['name'][1]
['size'][1]
['time'][1]
files['name'][2]
['size'][2]
['mtime'][2]
...etc.

how do I sort this array according to "time" index? so that, for
example, files['name'][0] would give "my_file.txt" that was last
created?

thank you in advance!

Jerry Stuckle
Guest
 
Posts: n/a
#2: Jan 30 '06

re: sorting an array.. need help


namemattersnot@msn.com wrote:[color=blue]
> re,
>
> i've have the following array:
>
> files['name'][1]
> ['size'][1]
> ['time'][1]
> files['name'][2]
> ['size'][2]
> ['mtime'][2]
> ..etc.
>
> how do I sort this array according to "time" index? so that, for
> example, files['name'][0] would give "my_file.txt" that was last
> created?
>
> thank you in advance!
>[/color]

(I hope the mtime in your second element is a typo...)

Someting like (not tested):

<?php
function cmp($a, $b)
{
// Could also be done with ternary operator.
// But this is easier to understand

if ($a['time'] > $b['time'])
return 1;
else
if ($a['time' == $b['time'])
return 0;
else
return -1;
}


uksort($files, "cmp");

}
?>


--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Sune Storgaard
Guest
 
Posts: n/a
#3: Jan 30 '06

re: sorting an array.. need help


namemattersnot@msn.com wrote:[color=blue]
> i've have the following array:
>
> files['name'][1]
> ['size'][1]
> ['time'][1]
> files['name'][2]
> ['size'][2]
> ['mtime'][2]
> ..etc.
>
> how do I sort this array according to "time" index? so that, for
> example, files['name'][0] would give "my_file.txt" that was last
> created?[/color]

A little *dirty* trick is to rearrange the array into a new array, where the
time is first entry.
In this case, swap it around so you get
files
['time'][1]
['size'][1]
['name'][1]
When you sort it now, it will be correct as its sorted on first entry =
time.
Then swap it back to the original structure.

See the "smith / johnson/ berger" example at php.net/sort


Closed Thread