상세 한 설명 PHP 2 차원 배열 정렬 은 키 이름 이 변 하지 않 습 니 다.

2 차원 배열 이 지정 한 키 이름 정렬 에 대해 먼저 생각 나 는 것 은 array 입 니 다.multisort 함수,array 에 대하 여multisort 의 용법 은 나 도 전에 쓸데없는 말 을 한 편 썼 다.우 리 는 실례 를 보 자.

<?php
$data = array(
 1001 => array(
 'age' => 22,
 'name' => '   '
 ),
 1007 => array(
 'age' => 21,
 'name' => '   '
 ),
 1004 => array(
 'age' => 27,
 'name' => '   '
 )
);
//    age   $data       

$ages = array_column($data, 'age'); 

array_multisort($ages, SORT_ASC, $data); 

print_r($data);

세심 한 친 구 는 키 이름 이 리 셋 되 었 습 니 다.키 이름 은 0 부터 시작 합 니 다.이것 은 우리 가 원 하 는 결과 가 아 닐 수도 있 습 니 다.어떻게 키 이름 이 변 하지 않 습 니까?
우 리 는 예 를 하나 더 보 자.

$data = array(
 1001 => array(
 'age' => 22,
 'name' => '   '
 ),
 1007 => array(
 'age' => 21,
 'name' => '   '
 ),
 1004 => array(
 'age' => 27,
 'name' => '   '
 )
);
//    age   $data      
$data = arraySort($data, "age", "desc" );
print_r($data);

/**
 * @desc arraySort php            key          
 * @param array $arr        
 * @param string $keys      key
 * @param string $type      asc | desc
 * @return array
 */
function arraySort($arr, $keys, $type = 'asc')
{
 $keysvalue = $new_array = array();
 foreach ($arr as $k => $v) {
 $keysvalue[$k] = $v[$keys];
 }

 if ($type == 'asc') {
 natsort($keysvalue);
 }
 if ($type == 'desc') {
 natsort($keysvalue);
 $keysvalue = array_reverse($keysvalue, TRUE); //             ,           true,          
 }
 foreach ($keysvalue as $k => $v) {
 $new_array[$k] = $arr[$k];
 }
 return $new_array;
}
여기 서도 array Sort 함 수 를 간소화 할 수 있 습 니 다.처리 결 과 는 같 습 니 다.

/**
 * @desc arraySort php            key          
 * @param array $arr        
 * @param string $keys      key
 * @param string $type      asc | desc
 * @return array
 */
function arraySort($arr, $keys, $type = 'asc')
{
 $keysvalue = $new_array = array();
 foreach ($arr as $k => $v) {
 $keysvalue[$k] = $v[$keys];
 }

 $type == 'asc' ? asort($keysvalue) : arsort($keysvalue);
 foreach ($keysvalue as $k => $v) {
 $new_array[$k] = $arr[$k];
 }
 return $new_array;
}
위의 결 과 를 우 리 는 보 았 다.

키 이름 이 변 하지 않 고 실현 되 는 원 리 는 간단 합 니 다.먼저 키 이름 을 꺼 낸 다음 키 이름 을 정렬 한 다음 에 해당 하 는 키 이름 할당 값 에 따라 새 배열 을 구성 하여 되 돌려 줍 니 다.
보시 다시 피,여기 서 우 리 는 주로 php 의 몇 가지 핵심 정렬 함 수 를 사 용 했 습 니 다.
asort()는 관련 배열 을 키 값 에 따라 오름차 순 으로 정렬 합 니 다.
arsort()는 관련 배열 을 키 값 에 따라 내림차 순 으로 정렬 합 니 다.
natsort()는'자연 정렬',즉 숫자 가 1 에서 9 까지 정렬 하 는 방법,알파벳 이 a 에서 z 까지 정렬 하 는 방법,짧 은 우선 순 위 를 실현 했다.배열 의 색인 은 단위 값 과 연결 되 어 있 습 니 다.
주의:자연 정렬 알고리즘 에서 숫자 2 는 숫자 10 보다 작 습 니 다.컴퓨터 정렬 알고리즘 에서 10 은 2 보다 작 습 니 다.'10'의 첫 번 째 숫자 는 2 보다 작 기 때 문 입 니 다.
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 PHP 2 차원 배열 의 정렬 키 이름 이 변 하지 않 고 상세 하 게 통합 되 는 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기