0
Array ( [0] => wilson ) 
Array ( [0] => umkk )
Array ( [0] => audiok ) 
Array ( [0] => Futurama ) 

I have the above users array, i'm trying to sort it alphabetically so the result looks like this

audiok
futurama
umkk
wilson

This is my php code from those lines:

$arr1 = explode("\n", $users);

            sort ($arr1);
            print_r($arr1);

Why isn't sort () working? It doesnt sort it at all.. what am i doing wrong? I'm new to php programming, i have looked on the php manual and have not been able to sort it after trying all these different examples posted there.

Thanks in advanced.

Edit:

preg_match_all('/control\?user=(.+?)&data/', $linklong, $users) 
$users = $users[1][0];} 

if i print $users all the users are displayed nicely, but when i tried to sort them it tells me is not array, so i took $users, and did explode to create the array... i'm sorry im not very programming savy –

7
  • why are you trying to explode again ? Commented Jun 26, 2013 at 20:33
  • Because your'e sorting a nested array.... use usort() Commented Jun 26, 2013 at 20:33
  • Your top snippet cannot be the contents of $arr1 because explode would not produce something like that. It likely cannot be the contents of $users because explode does not work on arrays. So what exactly is the deal with the question? Commented Jun 26, 2013 at 20:34
  • what is the output before and after the sort? Also, what is your input, perhaps you dont have a new line character in the input. Commented Jun 26, 2013 at 20:34
  • please show us what print_r($arr1) shows? Commented Jun 26, 2013 at 20:35

2 Answers 2

1
<?php
$array1 = array(0=>'wilson');
$array2 = array(0=>'umkk');
$array3 = array(0=>'audiok');
$array4 = array(0=>'Futurama');

$array = array_merge($array1,$array2,$array3,$array4);
natcasesort($array);
echo '<pre>',print_r($array),'</pre>';

Or if you have text that is 4 names on 4 different lines that you want to explode and sort:

<?php
$text = <<<EOD
wilson
umkk
audiok
Futurama
EOD;

$arr = explode("\n",$text);
natcasesort($arr);

echo '<pre>',print_r($arr),'</pre>';

natcasesort() docs

Sign up to request clarification or add additional context in comments.

Comments

0

asort() is the function that u need. Following URL contains the example and the output.

http://www.php.net/manual/en/function.asort.php

2 Comments

asort() would put Futurama first
as shown in the given url for reference, the asort() function sorts the array based on the value. Thus it sorts it alphabetically as needed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.