Maison >développement back-end >tutoriel php >PHP implémente le tri récursif des tableaux

PHP implémente le tri récursif des tableaux

php中世界最好的语言
php中世界最好的语言original
2018-03-24 14:00:391950parcourir

Cette fois, je vais vous présenter PHP pour implémenter le tri récursif des tableaux. Quelles sont les précautions pour que PHP implémente le tri récursif des tableaux. Voici des cas pratiques, jetons un coup d'œil.

L'exemple de cet article décrit la méthode d'implémentation du tri récursif des tableaux PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

/**
 * 递归根据特定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)
 }
}
*/

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez. faites attention aux autres articles connexes sur le site Web PHP chinois !

Lecture recommandée :

Explication détaillée de l'utilisation des fonctions de rappel PHP et des fonctions anonymes

ThinkPHP implémente le paiement WeChat ( jsapi payment) Processus Exemple détaillé de tutoriel_php

PHP implémente le paiement et le remboursement WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn