Das PHP-Array enthält sowohl Chinesisch als auch Englisch. So sortieren Sie das Array nach dem ersten Wort oder chinesischen Zeichen
Das PHP-Array enthält sowohl Chinesisch als auch Englisch. So sortieren Sie das Array nach dem ersten Wort oder chinesischen Zeichen
PHP verfügt über viele Funktionen zum Sortieren von Arrays.
Zum Beispiel die grundlegendsten sort
und rsort
(das Hinzufügen von r
bedeutet umgekehrte Reihenfolge, dasselbe unten);
natürliche Sortierungnatsort
(natürliche Sortierung bedeutet, Zahlen nach Größe zu sortieren, nicht nach ASCII-Code-Sortierung) und natcasesort
, die die Groß-/Kleinschreibung ignorieren;
, die die Schlüssel-Wert-Indexbeziehung beibehalten; asort
, die nach Schlüssel sortieren; > Wenn Sie mit den eingebauten Sortierregeln nicht zufrieden sind, können Sie auch eigene Funktionen schreiben, um die Sortierregeln arsort
,
und ksort
zu bestimmen (entsprechend den oben genannten Funktionen ohne krsort
);
kann auch mehrere Arrays sortieren Sortieren und nur die usort
der Schlüssel-Wert-Indexbeziehung des assoziativen Arrays beibehalten. uasort
uksort
Bei so vielen Rankings gibt es immer eines, das zu Ihnen passt. u
Weitere Informationen finden Sie in der Dokumentation.
array_multisort
Die Verwendung der strcmp-String-Vergleichssortierung kann tatsächlich Ihre Anforderungen erfüllen.
Der Hauptunterschied zwischen der natürlichen Strcmp-String-Vergleichssortierung und der strcmp-String-Vergleichssortierung ist die Anzahl der von strnatcmp verarbeiteten numerischen Elemente, und es gibt eine Größenbeziehung.
<code><?php header('Content-Type: text/plain; charset=utf-8'); $arr = explode(' ', '1 11 111 112 12 121 122 a aa aaa aab ab aba abb 阿里 百度 中 中国 中国国 中国中 中中 中中国 中中中'); shuffle($arr); //打乱数组 //collator_sort(collator_create('zh_CN'), $arr); //usort($arr, function($a, $b) { return strnatcmp($a, $b); }); usort($arr, function($a, $b) { return strcmp($a, $b); }); echo implode(' ',$arr); exit(); ?> ls排序: 1 11 111 112 12 121 122 a aa aaa aab ab aba abb 阿里 百度 中 中国 中国国 中国中 中中 中中国 中中中 collator_sort(zh_CN)排序(类似Windows/Linux桌面文件管理器里的默认按名称上升排列): 1 11 12 111 112 121 122 a aa aaa aab ab aba abb 阿里 百度 中 中国 中国国 中国中 中中 中中国 中中中 strnatcmp排序: 1 11 12 111 112 121 122 a aa aaa aab ab aba abb 中 中中 中中中 中中国 中国 中国中 中国国 百度 阿里 strcmp排序: 1 11 111 112 12 121 122 a aa aaa aab ab aba abb 中 中中 中中中 中中国 中国 中国中 中国国 百度 阿里</code>