Home >Backend Development >PHP Tutorial >PHP Chinese and English array sorting

PHP Chinese and English array sorting

WBOY
WBOYOriginal
2016-08-04 09:20:302539browse

The php array contains both Chinese and English, how to sort the array by the first word or Chinese characters

Reply content:

The php array contains both Chinese and English, how to sort the array by the first word or Chinese characters

PHP has many functions for sorting arrays.

For example, the most basic sort and rsort (adding r means reverse order, the same below);
natural sorting natsort (natural sorting is to sort numbers according to size, not according to ASCII code) and natcasesort that ignores case;
asort and arsort that maintain the key-value index relationship; ksort
and krsort that sort by key; If you are not satisfied with the built-in sorting rules, you can also You can write your own functions to determine the sorting rules usort
, uasort and uksort (corresponding to the above functions without u); You can also sort multiple arrays and only maintain the key-value index of the associative array Relational array_multisort
. With so many arrangements, there is always one that suits you.

Please refer to the documentation for details.


<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>
Using strcmp string comparison sorting can actually meet your needs.

The main difference between strnatcmp natural sorting and strcmp string comparison sorting is the number. The numerical elements processed by strnatcmp are sorted from small to large, and there is a size relationship.

And The simplified Chinese sorter collator_sort (zh_CN) in the ICU extension intl can sort according to the pinyin of Chinese characters, such as Ali, Baidu, ZhongGuo. If you are interested, you can also read my article PHP uses the ICU extension intl to quickly convert Chinese characters Pinyin and grouping and sorting by the first letter of Pinyin, converting Chinese characters to Pinyin is just a function:

<code>echo transliterator_transliterate('Any-Latin; Latin-ASCII; Upper()', '中华有为');
//输出 ZHONG HUA YOU WEI</code>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn