按字母顺序按值对数组进行排序 php

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1673259/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 03:28:03  来源:igfitidea点击:

Sort array by value alphabetically php

phparrayssorting

提问by dotty

As the title suggests i want to sort an array by value alphabetically in php.

正如标题所示,我想在 php 中按字母顺序对数组进行排序。

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

would become

会成为

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

Any ideas?

有任何想法吗?

EDIT: Here's the actual array i want to sort.

编辑:这是我要排序的实际数组。

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 )

回答by n00dle

You want the php function "asort":

你想要 php 函数“asort”:

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

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

it sorts the array, maintaining the index associations.

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

Edit: I've just noticed you're using a standard array (non-associative). if you're not fussed about preserving index associations, use sort():

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

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

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

回答by Ewan Todd

Note that sort() operates on the array in place, so you only need to call

请注意 sort() 对数组进行就地操作,因此您只需要调用

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

This will not work;

这行不通;

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

回答by Ferdinand Beyer

  • If you just want to sort the array values and don't care for the keys, use sort(). This will give a new array with numeric keys starting from 0.
  • If you want to keep the key-value associations, use asort().
  • 如果您只想对数组值进行排序而不关心键,请使用sort(). 这将给出一个新数组,数字键从0.
  • 如果要保留键值关联,请使用asort().

See also the comparison table of sorting functions in PHP.

另见PHP 排序函数对比表

回答by Abduhafiz

asort()- Maintains key association: yes.

asort()- 保持密钥关联:

sort()- Maintains key association: no.

sort()- 保持密钥关联:没有

Source: http://php.net/manual/en/array.sorting.php

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