PHP에서 배열은 일련의 데이터를 저장할 수 있고 쉽게 조작할 수 있는 매우 중요한 데이터 유형입니다. 배열을 정렬해야 할 때 PHP는 많은 내장 함수와 메소드를 제공합니다.
이 기사에서는 주로 다음을 포함하여 PHP에서 일반적으로 사용되는 배열 정렬 방법을 소개합니다.
array_sort() 함수는 PHP에서 사용자 정의됩니다. 함수 배열을 정렬하는 데 사용할 수 있습니다. 이 함수를 호출할 때 두 개의 매개변수를 전달해야 합니다. 첫 번째 매개변수는 정렬할 배열이고 두 번째 매개변수는 정렬 방법입니다.
다음은 array_sort() 함수를 사용하여 배열을 정렬하는 예입니다.
function array_sort($arr,$keys,$type=SORT_ASC){ $keysvalue = array(); foreach($arr as $key=>$val){ $keysvalue[$key] = $val[$keys]; } if($type == SORT_ASC){ asort($keysvalue); }else{ arsort($keysvalue); } reset($keysvalue); foreach($keysvalue as $key=>$vals) { $keysort[$key] = $key; } $new_array = array(); foreach($keysort as $key=>$val) { $new_array[$val] = $arr[$val]; } return $new_array; }
Usage:
$arr = array(
array('id'=>1,'name'=>'Tom','age'=>20), array('id'=>2,'name'=>'Jerry','age'=>18), array('id'=>3,'name'=>'Lucy','age'=>22)
);
$arr = array_sort($arr,'age',SORT_DESC ) ;
print_r($arr);
출력 결과:
Array
(
[0] => Array ( [id] => 3 [name] => Lucy [age] => 22 ) [1] => Array ( [id] => 1 [name] => Tom [age] => 20 ) [2] => Array ( [id] => 2 [name] => Jerry [age] => 18 )
)
sort() 함수는 PHP에서 주로 사용되는 정렬 함수 중 하나입니다. 배열 정렬. 오름차순이나 내림차순으로 정렬할 수도 있고 배열의 인덱스 관계를 변경하지 않고 유지할 수도 있습니다.
다음은 sort() 함수를 사용하여 배열을 정렬하는 예입니다.
$arr = array(3,1,4,2,5);
sort($arr);
print_r($arr) ;
출력 결과:
Array
(
[0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5
)
asort() 함수는 배열을 오름차순이나 내림차순으로 정렬할 수 있지만 유지됩니다. 배열의 인덱스 관계는 변경되지 않습니다. asort() 함수를 사용하면 해당 값을 기준으로 배열을 정렬합니다.
다음은 asort() 함수를 사용하여 배열을 정렬하는 예입니다.
$arr = array(3,1,4,2,5);
asort($arr);
print_r($arr) ;
출력 결과:
Array
(
[1] => 1 [3] => 2 [0] => 3 [2] => 4 [4] => 5
)
ksort() 함수는 배열을 오름차순이나 내림차순으로 정렬할 수 있지만 유지됩니다. 배열의 키와 값 사이의 관계는 변경되지 않습니다.
다음은 ksort() 함수를 사용하여 배열을 정렬하는 예입니다.
$arr = array('d'=>'Dog','a'=>'Apple','c'= > 'Cat','b'=>'Boy');
ksort($arr);
print_r($arr);
출력 결과:
Array
(
[a] => Apple [b] => Boy [c] => Cat [d] => Dog
)
usort() 함수는 배열을 정렬하는 방법입니다. usort() 함수를 사용하면 정렬 알고리즘을 사용자 정의할 수 있습니다. usort() 함수를 사용할 때 원하는 기준(문자열에 포함된 문자 수나 숫자의 크기 등)에 따라 배열의 값을 비교하는 비교 함수를 지정할 수 있습니다.
다음은 배열을 정렬하기 위해 usort() 함수를 사용하는 예입니다:
function cmp($a, $b)
{
if ($a == $b) return 0; return ($a < $b) ? -1 : 1;
}
$arr = array(3,1,4,2,5 ) ;
usort($arr, "cmp");
print_r($arr);
출력 결과:
Array
(
[0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5
)
uasort() 함수는 다음과 같습니다. PHP usort() 함수와 유사하며 정렬 알고리즘을 사용자 정의할 수 있는 정렬 함수입니다. 하지만 usort() 함수와 달리 배열의 키 값을 변경하지 않고 유지합니다.
다음은 uasort() 함수를 사용하여 배열을 정렬하는 예입니다.
function cmp($a, $b)
{
if ($a == $b) return 0; return ($a < $b) ? -1 : 1;
}
$arr = array('d'=>'Dog ', 'a'=>'사과','c'=>'고양이','b'=>'소년');
uasort($arr, "cmp");
print_r($arr) ;
출력 결과:
Array
(
[a] => Apple [b] => Boy [c] => Cat [d] => Dog
)
uksort() 함수는 PHP의 정렬 함수입니다. ksort() 함수와 유사하며 포함될 수도 있습니다. 오름차순 또는 내림차순으로 정렬하는 방법입니다. 그러나 ksort() 함수와 달리 정렬 알고리즘을 사용자 정의할 수 있으며 키와 값 간의 관계를 변경되지 않은 상태로 유지할 수 있습니다.
다음은 uksort() 함수를 사용하여 배열을 정렬하는 예입니다:
function cmp($a, $b)
{
if ($a == $b) return 0; return ($a < $b) ? -1 : 1;
}
$arr = array('d'=>'Dog' , 'a'=>'사과','c'=>'고양이','b'=>'소년');
uksort($arr, "cmp");
print_r($arr);
출력 결과:
Array
(
[a] => Apple [b] => Boy [c] => Cat [d] => Dog
)
natsort() 함수는 PHP의 정렬 함수입니다. 자연수에 따라 배열을 정렬하는데, 이는 사용자에게 별로 유용하지 않을 수 있습니다. -친절한 숫자 문자열로 숫자를 비교하기 때문에 직관적입니다.
다음은 natsort() 함수를 사용하여 배열을 정렬하는 예입니다.
$arr = array('img12.png', 'img10.png', 'img2.png', 'img1.png') ;
natsort($arr);
print_r($arr);
출력 결과:
Array
(
[3] => img1.png [2] => img2.png [1] => img10.png [0] => img12.png
)
arsort()函数是PHP中的一种排序函数,它可以按照降序方式将数组中的元素进行排序。该函数不会保留原来数组中的键(key)与值(value)之间的关系。
下面是一个使用arsort()函数对数组进行排序的例子:
$arr = array(3,1,4,2,5);
arsort($arr);
print_r($arr);
输出结果:
Array
(
[4] => 5 [2] => 4 [0] => 3 [1] => 1 [3] => 2
)
rsort()函数是PHP中常用的排序函数之一,它可以按照降序的方式来排序。该函数不会保留原来数组中的键(key)与值(value)之间的关系。
下面是一个使用rsort()函数对数组进行排序的例子:
$arr = array(3,1,4,2,5);
rsort($arr);
print_r($arr);
输出结果:
Array
(
[0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1
)
总结:
以上介绍了PHP中常用的数组排序方法,包括array_sort()函数、sort()函数、asort()函数、ksort()函数、usort()函数、uasort()函数、uksort()函数、natsort()函数、arsort()函数和rsort()函数。不同的排序函数有不同的需求和使用场景,开发者应根据具体的需求来选择合适的排序函数。
위 내용은 PHP에서 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!