<分区>
我有如下所示的多维数组,我想在其中根据 [name]
字段进行排序。此外,带重音符号的字母应该像没有重音符号一样排序。
Array
(
[chicago] => Array
(
[community_name] => Chicago, IL
[areas] => Array
(
[0] => Array
(
[name] => Array
(
[0] => HELLO WORLD.
)
)
[1] => Array
(
[name] => Array
(
[0] => Hello
)
)
[2] => Array
(
[name] => Array
(
[0] => Administration.
)
)
)
)
[chicago-and-surrounding-areas] => Array
(
[community_name] => Chicago (and surrounding areas), IL
[areas] => Array
(
[0] => Array
(
[name] => Array
(
[0] => Covit Corp.
)
)
[1] => Array
(
[name] => Array
(
[0] => Câble-Axion Digital Corp.
)
)
)
)
[cambridge-chicago] => Array
(
[community_name] => Cambridge (Chicago), IL
[areas] => Array
(
[0] => Array
(
[name] => Array
(
[0] => Avocados.
)
)
[1] => Array
(
[name] => Array
(
[0] => Aṕple.
)
)
)
)
)
这是我想要实现的:
Array
(
[chicago] => Array
(
[community_name] => Chicago, IL
[areas] => Array
(
[0] => Array
(
[name] => Array
(
[0] => Administration.
)
)
[1] => Array
(
[name] => Array
(
[0] => HELLO WORLD.
)
)
[2] => Array
(
[name] => Array
(
[0] => Hello
)
)
)
)
[chicago-and-surrounding-areas] => Array
(
[community_name] => Chicago (and surrounding areas), IL
[areas] => Array
(
[0] => Array
(
[name] => Array
(
[0] => Câble-Axion Digital Corp.
)
)
[1] => Array
(
[name] => Array
(
[0] => Covit Corp.
)
)
)
)
[cambridge-chicago] => Array
(
[community_name] => Cambridge (Chicago), IL
[areas] => Array
(
[0] => Array
(
[name] => Array
(
[0] => Aṕple.
)
)
[1] => Array
(
[name] => Array
(
[0] => Avocados.
)
)
)
)
)
这是我尝试过的方法,但我想知道它是否适用于所有情况。在某些情况下,即使对重音字母排序后,其排名也低于非重音字母。
我想知道我应该在下面的代码中做些什么更改,以便重音字母应该像它们没有重音一样排序。
foreach ($array as &$locality) {
usort($locality['areas'], function ($a, $b) {
// return $a['name'][0] <=> $b['name'][0];
return iconv('UTF-8', 'ISO-8859-8//TRANSLIT', $a['name'][0]) <=> iconv('UTF-8', 'ISO-8859-8//TRANSLIT', $b['name'][0]);
});
}