> 백엔드 개발 > PHP 튜토리얼 > PHP 배열을 병음순으로 정렬하는 방법에 대한 자세한 설명

PHP 배열을 병음순으로 정렬하는 방법에 대한 자세한 설명

墨辰丷
풀어 주다: 2023-03-27 15:50:01
원래의
2052명이 탐색했습니다.

이 글은 주로 php에서 배열을 병음순으로 정렬하는 방법을 소개하는데, php에서 한자와 병음의 변환과 배열순회 및 정렬에 관련된 조작기술이 필요하신 분들은 참고하시면 됩니다

1. 질문 :

주어진 배열은 한자의 첫 글자에 따라 정렬되어야 합니다:

$pinyin = array(
  array('name'=>'梁朝伟','age'=>23),
  array('name'=>'andy','age'=>24),
  array('name'=>'黎明','age'=>19),
  array('name'=>'郭富城','age'=>20)
);
로그인 후 복사

2. 해결 방법:

=ord('A')&&$fchar<=ord('z')) return strtoupper($str{0});
  $s1=iconv('UTF-8','gb2312',$str);
  $s2=iconv('gb2312','UTF-8',$s1);
  $s=$s2==$str?$s1:$str;
  $asc=ord($s{0})*256+ord($s{1})-65536;
  if($asc>=-20319&&$asc<=-20284) return 'A';
  if($asc>=-20283&&$asc<=-19776) return 'B';
  if($asc>=-19775&&$asc<=-19219) return 'C';
  if($asc>=-19218&&$asc<=-18711) return 'D';
  if($asc>=-18710&&$asc<=-18527) return 'E';
  if($asc>=-18526&&$asc<=-18240) return 'F';
  if($asc>=-18239&&$asc<=-17923) return 'G';
  if($asc>=-17922&&$asc<=-17418) return 'H';
  if($asc>=-17417&&$asc<=-16475) return 'J';
  if($asc>=-16474&&$asc<=-16213) return 'K';
  if($asc>=-16212&&$asc<=-15641) return 'L';
  if($asc>=-15640&&$asc<=-15166) return 'M';
  if($asc>=-15165&&$asc<=-14923) return 'N';
  if($asc>=-14922&&$asc<=-14915) return 'O';
  if($asc>=-14914&&$asc<=-14631) return 'P';
  if($asc>=-14630&&$asc<=-14150) return 'Q';
  if($asc>=-14149&&$asc<=-14091) return 'R';
  if($asc>=-14090&&$asc<=-13319) return 'S';
  if($asc>=-13318&&$asc<=-12839) return 'T';
  if($asc>=-12838&&$asc<=-12557) return 'W';
  if($asc>=-12556&&$asc<=-11848) return 'X';
  if($asc>=-11847&&$asc<=-11056) return 'Y';
  if($asc>=-11055&&$asc<=-10247) return 'Z';
  return null;
}
$pinyin = array(
  array(&#39;name&#39;=>&#39;梁朝伟&#39;,&#39;age&#39;=>23),
  array(&#39;name&#39;=>&#39;andy&#39;,&#39;age&#39;=>24),
  array(&#39;name&#39;=>&#39;黎明&#39;,&#39;age&#39;=>19),
  array(&#39;name&#39;=>&#39;郭富城&#39;,&#39;age&#39;=>20)
);
$sort = array();
foreach($pinyin as $key => $item) {
  $py = zhcnToPinyin($item['name']);
  $pinyin[$key]['pinyin'] = $py;
  $sort[] = $py;
}
array_multisort($sort, SORT_ASC, $pinyin);
var_dump($pinyin);
?>
로그인 후 복사

실행 결과는 다음과 같습니다. 다음은

array(4) {
 [0]=>
 array(3) {
  ["name"]=>
  string(4) "andy"
  ["age"]=>
  int(24)
  ["pinyin"]=>
  string(1) "A"
 }
 [1]=>
 array(3) {
  ["name"]=>
  string(6) "郭富城"
  ["age"]=>
  int(20)
  ["pinyin"]=>
  string(1) "G"
 }
 [2]=>
 array(3) {
  ["name"]=>
  string(4) "黎明"
  ["age"]=>
  int(19)
  ["pinyin"]=>
  string(1) "L"
 }
 [3]=>
 array(3) {
  ["name"]=>
  string(6) "梁朝伟"
  ["age"]=>
  int(23)
  ["pinyin"]=>
  string(1) "L"
 }
}
로그인 후 복사

위의 글이 바로 모든 내용에 관한 글이고, 모든 분들의 공부에 도움이 되었으면 좋겠습니다.


관련 권장 사항:

jquery+php로 스크롤 디지털 효과 구현_jquery

PHP 및 jqGrid를 사용하여 결합된 MySQL을 기반으로 데이터 및 디스플레이_jquery

PHP 구현 무한 분류( 재귀 사용)_javascript 트릭

위 내용은 PHP 배열을 병음순으로 정렬하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿