PHP 배열 반복 정렬 구현 방법 예

2609 단어
본고의 실례는 PHP 수조의 귀속 정렬 실현 방법을 설명하였다.여러분에게 참고하도록 공유하겠습니다. 구체적으로는 다음과 같습니다.

/**
 *  key 
 * @param $data
 * @param string $orderKey
 * @param string $sonKey
 * @param int $orderBy
 * @return mixed
 */
function recursion_orderby($data, $orderKey = 'order', $sonKey = 'children', $orderBy = SORT_ASC)
{
  $func = function ($value) use ($sonKey, $orderKey, $orderBy) {
    if (isset($value[$sonKey]) && is_array($value[$sonKey])) {
      $value[$sonKey] = recursion_orderby($value[$sonKey], $orderKey, $sonKey, $orderBy);
    }
    return $value;
  };
  return array_orderby(array_map($func, $data), $orderKey, $orderBy);
}
$a = [
  [
    'order' => 0,
  ],
  [
    'order' => -1,
    'children' => [
      [
        'order' => 0,
      ],
      [
        'order' => -2,
        'children' => [
          ['order' => 0],
          ['order' => -1],
          ['order' => 1],
        ],
      ],
    ],
  ],
  [
    'order' => 2,
  ],
];
var_dump(recursion_orderby($a));
/**
 *  :
array(3) {
 [0] =>
 array(2) {
  'order' =>
  int(-1)
  'children' =>
  array(2) {
   [0] =>
   array(2) {
    'order' =>
    int(-2)
    'children' =>
    array(3) {
     [0] =>
     array(1) {
      'order' =>
      int(-1)
     }
     [1] =>
     array(1) {
      'order' =>
      int(0)
     }
     [2] =>
     array(1) {
      'order' =>
      int(1)
     }
    }
   }
   [1] =>
   array(1) {
    'order' =>
    int(0)
   }
  }
 }
 [1] =>
 array(1) {
  'order' =>
  int(0)
 }
 [2] =>
 array(1) {
  'order' =>
  int(2)
 }
}
*/


주:여기요.방법은 앞의 php 사용자 정의 2차원 그룹 정렬 함수array orderby 용법에 상세하게 소개되어 있다
PS: 다음 슬라이드에서 참고할 수 있는 정렬 관련 데모 도구를 소개합니다.
온라인 애니메이션 프리젠테이션 삽입/선택/거품/병합/힐/빠른 정렬 알고리즘 프로세스 도구:http://tools.jb51.net/aideddesign/paixu_ys
더 많은 PHP 관련 내용에 관심이 있는 독자들은 본 사이트의 주제를 보실 수 있습니다.,,,,,,,,,,
본 논문에서 서술한 것이 여러분의 PHP 프로그램 설계에 도움이 되었으면 합니다.

좋은 웹페이지 즐겨찾기