2012-07-06 121 views
-4

可能重复:
Sorting an associative array in PHP
Sorting a multidimensional array in PHP?PHP阵列中顺序排序

我有一个系统,它允许订单被分配到输送driver.The以下源带来了一个当前可用分销商名单以及他们远离客户的距离:

$franchise_a_status = array(); 
    $franchise_a_status[] = array('id' => '', 'text' => 'Please Select'); 
    $franchise_query = mysql_query("select franchise_id, franchise_surname, franchise_firstname, franchise_postcode, franchise_availability from " . TABLE_FRANCHISE . " where franchise_availability=1"); 
    $origin = $cInfo->entry_postcode; 
    while ($franchise = mysql_fetch_array($franchise_query)) { 
    $destination = $franchise['franchise_postcode']; 
    $json = file_get_contents("http://maps.googleapis.com/maps/api/distancematrix/json?origins=$origin&destinations=$destination&mode=driving&sensor=false&units=imperial"); 
    $result = json_decode($json, true); 
    $distance = $result['rows'][0]['elements'][0]['distance']['text']; 


    $franchise_a_status[] = array('id' => $franchise['franchise_id'], 
           'text' => $franchise['franchise_surname']. ' ' .$franchise['franchise_firstname'].' '.'('.$distance.')'); 
       } 

列表使用下拉菜单中显示:

array('text' => tep_draw_pull_down_menu('franchise_id',$franchise_a_status)); 

我需要的数组中最高的距离最短距离的顺序进行排序。

+0

如何使用MySQL对它们进行排序呢? – Havelock 2012-07-06 10:07:37

+0

用'usort'研究一下。 [usort'的PHP文档](http://au.php.net/manual/en/function.usort.php) – 2012-07-06 10:08:36

回答

0
  1. 将距离加上$franchise_a_status
  2. 根据距离排序(usort)。
  3. 创建一个没有距离值的新阵列(array_mapforeach)。
+0

你可以扩展一下这个请多一点。 $距离包含在$ franchise_a_status数组中。 – user1506375 2012-07-06 10:23:51

+0

我认为最好把它作为自己的价值,并用自己的钥匙。 – 2012-07-06 11:16:36