How to compare 2 strings alphabetically in PHP?

PhpStringSorting

Php Problem Overview


What the title says. Specifically if I have

$array1['name'] = 'zoo';
$array2['name'] = 'fox';

How can I determine that alphabetically $array2's name should come above $array1's?

Php Solutions


Solution 1 - Php

Use strcmp. If the first argument to strcmp is lexicographically smaller to the second, then the value returned will be negative. If both are equal, then it will return 0. And if the first is lexicograpically greater than the second then a positive number will be returned.

nb. You probably want to use strcasecmp(string1,string2), which ignores case...

Solution 2 - Php

You can compare both strings with strcmp:

> Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal.

Solution 3 - Php

I'm a little late (then again I wasn't a programmer yet in 2009 :-) No one mentioned this yet, but you can simply use the operators which you use on number as well.

< > <= >= == != and more

For example:

'a' > 'b' returns false

'a' < 'b' returns true

http://php.net/manual/en/language.operators.comparison.php

IMPORTANT

There is a flaw, which you can find in the comments below.

Solution 4 - Php

I often use natsort (Natural Sort), since I usually just want to preserve the array for later use anyway.

Example:

natsort($unsorted_array);

var_dump($usorted_array); // will now be sorted.

Solution 5 - Php

sort

EDIT just realised values from different arrays, could array_merge first but not sure thats what you want

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAliView Question on Stackoverflow
Solution 1 - PhpaviraldgView Answer on Stackoverflow
Solution 2 - PhpGumboView Answer on Stackoverflow
Solution 3 - PhpJMRCView Answer on Stackoverflow
Solution 4 - PhpKzqaiView Answer on Stackoverflow
Solution 5 - PhprobjmillsView Answer on Stackoverflow