Sorting string-array without case...

Sorting string-array without case...

am 16.01.2008 16:40:48 von jodleren

Hi!

I user sort() but it gives me all uppercase items first.
Looking at http://ee.php.net/manual/en/function.sort.php I cannot find
what I need - tried natcasesort, but that was even more
interesting....

sort gives me (yes, I am aware of the spelling error)

Doc manager
Doc manger more
Tango
brugs

while natcasesort gives me

Doc manager
Tango
Doc manger more
brugs

and I want

brugs
Doc manager
Doc manger more
Tango

just as my alphabet is :-)
What should I user...

Re: Sorting string-array without case...

am 16.01.2008 17:49:15 von zeldorblat

On Jan 16, 10:40 am, jodleren wrote:
> Hi!
>
> I user sort() but it gives me all uppercase items first.
> Looking athttp://ee.php.net/manual/en/function.sort.phpI cannot find
> what I need - tried natcasesort, but that was even more
> interesting....
>
> sort gives me (yes, I am aware of the spelling error)
>
> Doc manager
> Doc manger more
> Tango
> brugs
>
> while natcasesort gives me
>
> Doc manager
> Tango
> Doc manger more
> brugs
>
> and I want
>
> brugs
> Doc manager
> Doc manger more
> Tango
>
> just as my alphabet is :-)
> What should I user...

How about this (untested):

$arr = array('foo', 'bar', 'Baz');
usort($arr, create_function('$v1,$v2', 'return strcasecmp($v1,
$v2);'));

Re: Sorting string-array without case...

am 17.01.2008 10:25:32 von jodleren

On Jan 16, 6:49=A0pm, ZeldorBlat wrote:
> On Jan 16, 10:40 am, jodleren wrote:
>
>
>
>
>
> > Hi!
>
> > I user sort() but it gives me all uppercase items first.
> > Looking athttp://ee.php.net/manual/en/function.sort.phpIcannot find
> > what I need - tried natcasesort, but that was even more
> > interesting....
>
> How about this (untested):
>
> $arr =3D array('foo', 'bar', 'Baz');
> usort($arr, create_function('$v1,$v2', 'return strcasecmp($v1,
> $v2);'));- Hide quoted text -
>
Yep, that does it. Thanks

I implemented it as this, which makes it work as a normal sort.

function my_sort(&$arr)
{
usort($arr, create_function('$v1,$v2', 'return
strcasecmp($v1,$v2);'));
}