2009-11-04 220 views
29

由於標題暗示我想按字母順序在php中對數組進行排序。按字母順序排列數組php

$arr = array(
    'k' => 'pig', 
    'e' => 'dog' 
) 

將成爲

$arr = array(
    'e' => 'dog', 
    'k' => 'pig' 
) 

任何想法?

編輯:這是我想要排序的實際數組。

Array ([0] => Newtown [1] => Montgomery [2] => Welshpool [6] => Llanfyllin [7] => Llansanffraid [8] => Llanymynech [9] => Oswestry [14] => Oswestry Town Service [15] => Aston Way [16] => College Road [17] => Shrewsbury [18] => Royal Shrewsbury Hospital [19] => Worthen [20] => Brockton [22] => Cefn Blodwell [23] => Treflach [24] => Trefonen [25] => Morda [26] => Marches School [28] => North Shropshire College [37] => Park Hall [38] => Gobowen [39] => St Martins [40] => Ifton Heath [42] => Guilsfield [43] => Four Crosses [45] => Pant [46] => Llynclys [49] => Oswestry Town Service Schools [51] => Woodside School [56] => Whittington [57] => Babbinswood [58] => Hindford [59] => Ellesmere [62] => Forden [63] => Kingswood Cock Hotel [65] => Coleg Powys [85] => Borfa Green [86] => Bryn Siriol [87] => Maesydre School [92] => Crew Green [93] => Ford [104] => Llanrhaeadr [106] => Meifod [114] => Llangynog [116] => Llangedwyn [119] => Porthywaen [132] => Llanfair Caereinion [133] => Pontrobet [136] => Dolanog [141] => Llansilin [144] => Abermule [145] => Llandyssil [146] => Carhowel [149] => Cefn Coch [150] => Tregynon [151] => Manafon [152] => Berriew [157] => Bettws Cedewain [158] => Newtown High School [160] => Newtown Coleg Powys [173] => Llanerfyl [174] => Machynlleth [175] => Talybont [176] => Aberystwyth [183] => Bala [184] => Llanrwst [185] => Llandudno [188] => Middletown [196] => Llanidloes [202] => Wrexham [203] => Rhayader) 

回答

5
  • 如果你只是想給數組值進行排序並不在意的鑰匙,使用sort()。這將給出一個從0開始的具有數字鍵的新陣列。
  • 如果要保留鍵值關聯,請使用asort()

另請參閱comparison table of sorting functions in PHP

17

注意排序()的陣列在地方工作,所以你只需要調用

sort($a); 
doSomething($a); 

這將無法正常工作;

$a = sort($a); 
doSomething($a); 
+0

這是因爲排序($ A)經過,因爲我們並不需要把它分配給第二個變量的參考值。 – 2013-03-14 19:11:19

+0

非常感謝這個提示。花了我近半個小時:-) – Jan 2015-07-16 07:35:49