PHP 배열에는 중국어와 영어가 모두 포함되어 있는데, 배열을 첫 번째 단어나 한자로 정렬하는 방법
PHP 배열에는 중국어와 영어가 모두 포함되어 있는데, 배열을 첫 번째 단어나 한자로 정렬하는 방법
PHP에는 배열 정렬을 위한 다양한 기능이 있습니다.
예를 들어 가장 기본적인 sort
및 rsort
(r
을 추가하면 역순을 의미하며 아래와 같음)
자연 정렬natsort
(자연 정렬은 숫자를 크기에 따라 정렬하는 것이 아니라 크기에 따라 정렬하는 것입니다. ASCII 코드 정렬에 따라) 및 natcasesort
는 대소문자를 무시합니다. asort
및 arsort
는 키별로 정렬됩니다. > 내장된 정렬 규칙이 만족스럽지 않은 경우 정렬 규칙
, ksort
및 krsort
(
이 없는 위 함수에 해당)을 결정하는 함수를 직접 작성할 수도 있습니다. usort
은 여러 배열을 정렬할 수도 있으며 연관 배열의 키-값 인덱스 관계인 uasort
만 정렬하고 유지합니다. uksort
u
순위가 너무 많아서 항상 자신에게 맞는 순위가 있습니다.
자세한 내용은 설명서를 참고해주세요. array_multisort
strcmp 문자열 비교 정렬을 사용하면 실제로 요구 사항을 충족할 수 있습니다.
ICU 확장 intl의 중국어 간체 정렬기 collator_sort(zh_CN)는 주로 Ali, Baidu, ZhongGuo와 같은 한자의 병음에 따라 정렬할 수 있습니다. 관심이 있으시면 제 기사 PHP도 읽어보세요. ICU Extend intl을 사용하여 한자를 병음으로 빠르게 변환하고 병음의 첫 글자를 기준으로 그룹화 및 정렬하여 한자를 병음으로 변환하는 것은 단순한 기능입니다.
<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>