array_multisort()使用小写字母按字母顺序排列问题

时间:2018-05-04 21:53:55

标签: php arrays multidimensional-array array-multisort

我有一个个人数据库,需要按姓氏的字母顺序排序。基本上是:

array_multisort($arr['a'],SORT_ASC,$arr['b'], etc...)

我最初在SORT_ASC之后输入了一个SORT_STRING,但它似乎对我没什么影响,所以我放弃了它。

无论如何,字母顺序完美无缺,除了一些以小写字母开头的法国名字,例如," d" " de Toussard"。在名称以" Z"。

开头后,它将这些名称倾倒在最后

当我把" d"它工作正常。

我能做些什么来让它无论如何都能发挥作用?

1 个答案:

答案 0 :(得分:0)

如本例http://php.net/manual/en/function.array-multisort.php#example-6112中所述,您应该按原始数组的小写副本排序。 因此,如果您的示例中需要$arr['a']保持不变,请执行

$lowercase = array_map('strtolower', $arr['a']);

然后

array_multisort($lowercase, SORT_ASC, SORT_STRING, $arr['b']);