Or try the usort() function?

<?php
...
myArray[1][firstname] = "Joe";
myArray[1][lastname] = "Smith";
myArray[1][company] = "Bullock";
myArray[1][email] = "[EMAIL PROTECTED]";
myArray[2][firstname] = "Jim";
myArray[2][lastname] = "Cords";
myArray[2][company] = "Jamen";
myArray[2][email] = "[EMAIL PROTECTED]";
...

function companyCmp ($a, $b) {
        return strcmp($a["company"],$b["company"]);
}

usort ($myArray, "companyCmp");

...
?>

-Steve

On Friday, April 12, 2002, at 12:26  PM, Kevin Stone wrote:

> This is a terribly inneficient way of handling your situation but I 
> believe
> it would work.
>
> // First we're going to make a list of all company values
> for($i=0; $i<count($myarray); $i++)
> {
>     $company_values[] = $myarray[$i][company];
> }
>
> // Then we're going to order the array using a standard function.
> natsort($company_values);
>
> // Then we're going to go through $myarray  looking for each matching
> // value and build a new array based on the order of the sorted list.
> for($i=0; $i<count($company_values); $i++)
> {
>     for ($j=0; $j=<count($myarray); $j++)
>     {
>         if ($company_values[$i] == $myarray[$j][company])
>         {
>             $mynewarray[] = $myarray[$j];
>         }
>     }
> }
>
> // bada bing bada boom you gots your company sorted list... I think
> $myarray = $mynewarray;
>
> I wrote this off the top of my head in like three minutes so any and all
> corrections would be most welcome.  ;)
> -Kevin
>
> ----- Original Message -----
> From: "SED" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Friday, April 12, 2002 10:25 AM
> Subject: [PHP] How to sort by 3rd row in an 2d-Array
>
>
>> Hi,
>>
>> I'm trying to sort an array like following
>>
>> myArray[1][firstname] = "Joe";
>> myArray[1][lastname] = "Smith";
>> myArray[1][company] = "Bullock";
>> myArray[1][email] = "[EMAIL PROTECTED]";
>> myArray[2][firstname] = "Jim";
>> myArray[2][lastname] = "Cords";
>> myArray[2][company] = "Jamen";
>> myArray[2][email] = "[EMAIL PROTECTED]";
>> etc...
>>
>> by the company name. How can I do it?
>>
>> I found the solution on php.net
>> (http://www.php.net/manual/en/function.array-multisort.php) but it 
>> sorts
>> only the first row:
>>
>> foreach ($myArray as $val) {
>>         $sortarray[] = $val['nafn'];
>> echo $val['stadur'];
>> }
>> array_multisort($myArray, $sortarray);
>>
>> Thanks in advance!
>>
>> SED
>>
>>
>> --
>> PHP General Mailing List (http://www.php.net/)
>> To unsubscribe, visit: http://www.php.net/unsub.php
>>
>>
>
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to