이 기사의 예는 PHP의 1차원 및 2차원 배열 키 정렬 방법을 요약합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 방법은 다음과 같습니다.
PHP의 배열 정렬은 항상 흔한 문제였습니다. PHP의 1차원 배열과 2차원 배열 정렬의 구현 절차에 대해 집중적으로 살펴보겠습니다.
기능: 배열을 재정렬합니다.
설명: 버블 정렬(1차원 배열)(특정 키를 기준으로 정렬되는 2차원 배열)
쌍별로 정렬할 데이터 요소의 크기를 비교하여 두 데이터 요소의 순서가 뒤바뀐 것으로 확인되면 뒤바뀐 데이터 요소가 없을 때까지 서로 바꿉니다
정렬된 배열 R[1..N]이 수직으로 세워지고, 각 데이터 요소를 가중치가 있는 버블로 처리하고, 배열을 아래에서 위로 스캔하고, 원리를 위반하는 가벼운 버블을 스캔하여 위쪽으로 만드는 것을 상상해 보세요. " "플로팅". 마지막 두 개의 기가 위쪽의 가벼운 기와 아래쪽의 무거운 기가 될 때까지 이 과정을 반복합니다.
/**
* 버블 정렬(1차원 배열)(특정 키를 기준으로 정렬되는 2차원 배열)
* 쌍으로 정렬할 데이터 요소의 크기를 비교하여 두 데이터 요소의 순서가 반전된 것으로 확인되면 반전된 데이터 요소가 없을 때까지 교환합니다
* 정렬된 배열 R[1..N]이 수직으로 세워지고 각 데이터 요소가 가중치가 부여된 버블로 간주된다고 상상해 보십시오. 배열은 아래에서 위로 스캔되어 원리를 위반하는 모든 가벼운 버블이 스캔됩니다. float" 위쪽으로. .이 작업을 반복적으로 수행합니다.
* 두 개의 기가 끝날 때까지 가벼운 것이 위쪽에 있고 무거운 것이 아래쪽에 있습니다.
*/
function bubble_sort($array,$key=null) {
$count = 개수($array);
if($count < 0) {
false를 반환합니다.
}
for($i = 0; $i < $count; $i ) {
for($j = $count - 1; $j > $i; $j--) {
If($key && isset($array[$key])){//2차원 배열이 존재합니다
If($array[$j][$key] < $array[$j - 1][$key]) {
$tmp = $array[$j];
$array[$j] = $array[$j - 1];
$array[$j - 1] = $tmp;
}
}else{ //1차원 배열
If($array[$j] < $array[$j - 1]) {
$tmp = $array[$j];
$array[$j] = $array[$j - 1];
$array[$j - 1] = $tmp;
}
}
}
}
$배열 반환;
}
array_multisort 정렬 사용 방법
array_multisort()를 사용하여 지정된 키 값에 따라 두 자리 배열을 정렬하는 방법
이 예에서는 $data라는 2차원 배열을 정의한 후 다음과 같이 정렬합니다
$data[] = array('볼륨' => 67, '에디션' => 2)
$data[] = array('볼륨' => 86, '에디션' => 1);
$data[] = array('볼륨' => 85, '에디션' => 6);
$data[] = array('볼륨' => 98, '에디션' => 2);
$data[] = array('볼륨' => 86, '에디션' => 6);
$data[] = array('볼륨' => 67, '에디션' => 7);
// 열 목록 가져오기
foreach ($data as $key => $row) {
$volume[$key] = $row['볼륨']
$edition[$key] = $row['에디션']
}
// 데이터를 용량에 따라 내림차순, 에디션에 따라 오름차순으로 정렬
// $data를 마지막 매개변수로 사용하고, 공통키로 정렬
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data)
print_r($data);
실행 후 인쇄 결과는 다음과 같습니다.
코드 복사
코드는 다음과 같습니다.배열
(
[0] => 배열
(
[볼륨] => 98
> [판] =>
)
[1] => 배열
(
[볼륨] => 86
[에디션] = & gt; 1
)
[2] => 배열
(
[볼륨] => 86
> > [판] =>
[3] => 배열
(
[볼륨] => 85
> > [판] =>
)
[4] => 배열
(
[볼륨] => 67
> [판] =>
)
[5] => 배열
(
[볼륨] => 67
> [판] =>
)
)
1차원 배열을 정렬하려면 sort()만 사용하면 됩니다. 해당 asort($arr) 함수는 키 값을 기준으로 정렬하고 원래 키-값 관계를 유지하는 것입니다.
동일한 원리입니다. rsort(); krsort(); 함수는 내림차순으로 정렬된다는 점만 다릅니다.
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.