sort multidimension array

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

 I have multi-arrays as shown below:
 I implemented usort() to sort the array by 'country' field in the array.
However there some empty string value in the array and i setup my cmpcountry() function to sort array, however , some country empty string value are sort first .

Any ideas what happen in the cmpcountry() function ?

 The result of sort array below is :

   Singapore
   Singapore
   Thailand
   ''
   Thailand
   ''
   ''
   Malaysia
   Phillipines


 function cmpcountry($a, $b)
  {

        $country1 = $a['country'];
        $country2 = $b['country'];

        if($country1 == ''){
		 if($country1 < $country2){
		    return 1;
		 }
		}

        if($country2 == '') {
		 if($country1 < $country2){
		    return 1;
		 }
		}

		return ($country1 < $country2) ? -1 : 1;
  }

usort($arraytest,"cmpcountry");

 $arraytest= array(
     array
        (
            'country' => 'Thailand',
            'city' => 'Z'
        )
     ,
     array
        (
            'country' => 'Thailand',
            'city' => 'M'
        )
     ,
     array
        (
            'country' => 'Singapore',
            'city' => 'G'
        )
     ,
     array
        (
            'country' => 'Singapore',
            'city' => 'B'
        )
     ,
     array
        (
            'country' => '',
            'city' => 'U'
        )
      ,
	  array
        (
            'country' => '',
            'city' => 'Y'
        )
	,
	array
        (
            'country' => '',
            'city' => 'J'
        )

     );

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux