如何在 Laravel 5.3 中对包含非拉丁字符的 UTF-8 字符串集合进行排序?

Fus*_*ion 4 sorting collation utf-8 laravel-collection laravel-5.3

各位,我想按字符串字母顺序对以下嵌套进行排序collection

\n\n
$collection = collect([\n    ["name"=>"maroon"],\n    ["name"=>"zoo"],\n    ["name"=>"\xc3\xa1bel"],\n    ["name"=>"\xc3\xa9lof"]\n])->sortBy("name");\n
Run Code Online (Sandbox Code Playgroud)\n\n

我期望

\n\n
1=> "\xc3\xa1bel"\n2=> "\xc3\xa9lof"\n3=> "maroon"\n4=> "zoo"\n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到的是

\n\n
1=> "maroon"\n2=> "zoo"\n3=> "\xc3\xa1bel"\n4=> "\xc3\xa9lof"\n
Run Code Online (Sandbox Code Playgroud)\n\n

我看到了一些 PHP 线程,但我很好奇是否有任何 Laravel 解决方法。谢谢。

\n

小智 6

好吧,我遇到了这个问题,我能够像这样解决它:

$list = $Company->administrator->sortBy(function($adm){
   return iconv('UTF-8', 'ASCII//TRANSLIT', $adm->person->name);
});
Run Code Online (Sandbox Code Playgroud)

我的环境是 Laravel 5.5 和 PHP 7.1