PHP 다차원 그룹 정렬(usort, uasort)

디지털 인덱스 그룹: bool usort (array & $array, callback $cmp_function) usort 함수는 지정된 그룹 (매개 변수 1) 을 지정한 방식 (매개 변수 2) 으로 정렬합니다.우리가 다차원 그룹을 정렬하려고 할 때, 다차원 그룹의 모든 원소는 또 하나의 그룹 유형이고, 두 그룹은 어떻게 크기를 비교합니까?이것은 사용자 정의가 필요합니다. (각 그룹의 첫 번째 요소에 따라 비교합니까, 아니면...)
 
<?php
//
$a = array(
array("sky", "blue"),
array("apple", "red"),
array("tree", "green"));
// , 。
function my_compare($a, $b) {
if ($a[1] < $b[1])
return -1;
else if ($a[1] == $b[1])
return 0;
else
return 1;
}
//
usort($a, 'my_compare');
//
foreach($a as $elem) {
echo "$elem[0] : $elem[1]<br />";
}

?>
결과:
 
sky : blue
tree : green
apple : red
관련 수조: bool uasort (array & $array, callback $cmp_function) bool uksort (array & $array, callback $cmp_function) uasort, uksort 용법은 usort와 같고, 그 중에서 uasort () 는 관련 수조의 값 (value) 을 정렬하고, uksort () 는 관련 수조의 키워드 (key) 를 정렬합니다.
 
<?php
$a = array(
'Sunday' => array(0,'7th'),
'Friday' => array(5,'5th'),
'Tuesday'=> array(2,'2nd'));

function my_compare($a, $b) {
if ($a[1] < $b[1])
return -1;
else if ($a[1] == $b[1])
return 0;
else
return 1;
}
// $a (7th,5th,2nd)
uasort($a, 'my_compare');
foreach($a as $key => $value) {
echo "$key : $value[0] $value[1]<br />";
}
// $a (r,u,u)
uksort($a, 'my_compare');
foreach($a as $key => $value) {
echo "$key : $value[0] $value[1]<br />";
}

?>
결과: Tuesday: 2 2nd Friday: 5 5th Sunday: 0 7th Friday: 5 5th Sunday: 0 7th Tuesday: 2 2nd

좋은 웹페이지 즐겨찾기