【问题标题】:Sort array by value alphabetically php按字母顺序对数组进行排序php
【发布时间】:2010-12-12 23:53:49
【问题描述】:

正如标题所示,我想在 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 )

【问题讨论】:

    标签: php arrays sorting


    【解决方案1】:

    你想要php函数“asort”:

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

    它对数组进行排序,维护索引关联。

    编辑:我刚刚注意到您使用的是标准数组(非关联)。如果您不关心保留索引关联,请使用 sort():

    http://php.net/manual/en/function.sort.php

    【讨论】:

      【解决方案2】:
      • 如果您只想对数组值进行排序而不关心键,请使用sort()。这将提供一个新数组,其中包含从 0 开始的数字键。
      • 如果要保留键值关联,请使用asort()

      另请参阅comparison table of sorting functions in PHP

      【讨论】:

        【解决方案3】:

        注意sort()对数组的操作就地,所以只需要调用

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

        这行不通;

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

        【讨论】:

        • 这是因为 sort($a) 通过引用传递值,因为我们不需要将它分配给第二个变量。
        【解决方案4】:

        asort() - 保持键关联:

        sort() - 保持键关联:

        来源:http://php.net/manual/en/array.sorting.php

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-08
          • 1970-01-01
          • 2019-01-26
          • 2019-06-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多