Matt,
Personally, I'd do a logic case for each combination, e.g.
if (ctype_alpha($x[0])) {
if (ctype_alpha($y[0])) {
//strcmp
} elseif (ctype_digit([$y[0])) {
//-1
} else {
// 1;
}
} elseif (ctype_digit([$x[0])) {
if (ctype_alpha($y[0])) {
// 1;
} elseif (ctype_digit([$y[0])) {
// >
} else {
// 1;
}
} else {
if (ctype_alpha($y[0])) {
// -1;
} elseif (ctype_digit([$y[0])) {
// -1
} else {
// strcmp
}
}
It's not the prettiest, but it will work.
David
Matt Palermo wrote:
> Any ideas on how to accomplish this?
>
>
> ""Matt Palermo"" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
>> I'm try to sort a list of items using a usort function. Basically, I want
>> it to sort in this order:
>>
>> Numbers (0-9)
>> Letters (Aa-Zz)
>> Other (anything else)
>>
>> To explain a little further, I want anything that starts with a number to
>> show up first in the sorted list, then anything that starts with a letter,
>> and finally anything that starts with some other character. My usort
>> function I'm using now gives me results close to this, but it sorts it as
>> follows (which is wrong for what I need):
>>
>> Numbers (0-9)
>> Other (anything else)
>> Letters (Aa-Zz)
>>
>> They are all sorted properly alphabetically, but not in the group order
>> that I need them in. Here is the usort function I'm using right now:
>>
>>
>> function myUsort($x, $y)
>> {
>> if(strtolower($x) == strtolower($y)) return 0;
>> if(strtolower($x) < strtolower($y)) return -1;
>> return 1;
>> }
function myUsort($x, $y) {
if (ctype_digit($x[0])) {
} elseif (ctype_alpha($x[0]}
}
>> As I stated above, this provides me with the proper alphabetical results,
>> but I need it tweaked. Basically this function will give a sorted list
>> like this:
>>
>> 007
>> 90210
>> __underscore
>> abra-cadabra
>> Zebra
>>
>> But I need the function to provide a sorted list like this:
>>
>> 007
>> 90210
>> abra-cadabra
>> Zebra
>> __underscore
>>
>>
>> Anyone know what I need to do to get these results? Please let me know.
>>
>> Thanks,
>>
>> Matt Palermo
>> http://sweetphp.com
>
--
David Grant
http://www.grant.org.uk/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php