>백엔드 개발 >PHP 튜토리얼 >PHP 개발 스킬(2) - 키 기반의 2차원 배열 정렬 구현 사례

PHP 개발 스킬(2) - 키 기반의 2차원 배열 정렬 구현 사례

黄舟
黄舟원래의
2017-03-10 18:33:132213검색

PHP에는 배열을 처리하기 위한 내장 함수가 많이 있습니다. 내장 함수를 직접 사용하여 요구 사항을 충족하고 원하는 결과를 얻을 수 있지만 때로는 내장 함수 구현을 사용할 수 없습니다. 우리의 요구 사항에 따라 우리는 우리 자신의 아이디어를 구현하기 위해 자체 알고리즘을 작성해야 합니다. 2차원 배열을 키에 따라 정렬하는 방법에 대해 이야기해 보겠습니다.

구현 방법:

<?php  
  
/** 
 * ======================================= 
 * Created by Zhihua_W. 
 * Author: Zhihua_W 
 * Date: 2016/11/26 0002 
 * Time: 下午 2:43 
 * Project: PHP开发小技巧 
 * Power: 实现二维数组根据key进行排序 
 * ======================================= 
 */  
  
/** 
 * 二维数组排序 
 * @param array $arr 需要排序的二维数组 
 * @param string $keys 所根据排序的key 
 * @param string $type 排序类型,desc、asc 
 * @return array $new_array 排好序的结果 
 */  
function array_sort($arr, $keys, $type = &#39;desc&#39;)  
{  
    $key_value = $new_array = array();  
    foreach ($arr as $k => $v) {  
        $key_value[$k] = $v[$keys];  
    }  
    if ($type == &#39;asc&#39;) {  
        asort($key_value);  
    } else {  
        arsort($key_value);  
    }  
    reset($key_value);  
    foreach ($key_value as $k => $v) {  
        $new_array[$k] = $arr[$k];  
    }  
    return $new_array;  
}  
  
$arr = array(  
    array(  
        &#39;name&#39; => &#39;a&#39;,  
        &#39;sex&#39; => &#39;m&#39;,  
        &#39;sort&#39; => 5  
    ),  
    array(  
        &#39;name&#39; => &#39;c&#39;,  
        &#39;sex&#39; => &#39;m&#39;,  
        &#39;sort&#39; => 8  
    ),  
    array(  
        &#39;name&#39; => &#39;g&#39;,  
        &#39;sex&#39; => &#39;m&#39;,  
        &#39;sort&#39; => 3  
    ),  
    array(  
        &#39;name&#39; => &#39;e&#39;,  
        &#39;sex&#39; => &#39;w&#39;,  
        &#39;sort&#39; => 6  
    ),  
    array(  
        &#39;name&#39; => &#39;b&#39;,  
        &#39;sex&#39; => &#39;w&#39;,  
        &#39;sort&#39; => 2  
    ),  
);  
  
//打印出原数组  
print_r($arr);  
//打印出排好序的数组  
print_r(array_sort($arr,&#39;name&#39;));  
  
?>

인쇄된 결과를 보면 배열이 "이름"에 따라 정렬된 것을 볼 수 있습니다.

아아아아


위 내용은 PHP 개발 스킬(2) - 키 기반의 2차원 배열 정렬 구현 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.