array_multisort() 小写字母排序问题
array_multisort() alphabetizing issues with lowercase letters
我有一个个人数据库,需要按姓氏的字母顺序对他们进行排序。基本上:
array_multisort($arr['a'],SORT_ASC,$arr['b'], etc...)
我最初在 SORT_ASC 之后添加了一个 SORT_STRING,但它似乎对我没有影响,所以我放弃了它。
无论如何,按字母顺序排列的效果很好,除了一些以小写 "d" 开头的法语名字,例如。 "de Toussard"。它在以 "Z".
开头的名称的最后转储了这些名称
当我将 "d" 大写时,它工作正常。
无论如何我可以做些什么来让它工作?
如本示例中所述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']);
我有一个个人数据库,需要按姓氏的字母顺序对他们进行排序。基本上:
array_multisort($arr['a'],SORT_ASC,$arr['b'], etc...)
我最初在 SORT_ASC 之后添加了一个 SORT_STRING,但它似乎对我没有影响,所以我放弃了它。
无论如何,按字母顺序排列的效果很好,除了一些以小写 "d" 开头的法语名字,例如。 "de Toussard"。它在以 "Z".
开头的名称的最后转储了这些名称当我将 "d" 大写时,它工作正常。
无论如何我可以做些什么来让它工作?
如本示例中所述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']);