Traversée récursive PHP pour obtenir une classification infinie

墨辰丷
Libérer: 2023-03-30 19:42:01
original
2173 Les gens l'ont consulté

Cet article présente principalement le parcours récursif PHP pour obtenir une classification infinie. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

La classification à niveau infini est une technique de classification, telle que l'organisation des départements, la classification des articles, la classification par sujet, etc. La classification à niveau infini est couramment utilisée. Elle peut être simplement comprise comme une classification. En fait, si l'on y réfléchit bien, il y a tout simplement trop de classifications dans la vie. Les vêtements peuvent être divisés en vêtements pour hommes et vêtements pour femmes, hauts et pantalons, et ils peuvent également être classés selon les groupes d'âge. La classification est partout, et la classification apparaît « infinie ». Je ne parlerai pas ici de la nécessité d’une classification infinie.

L'exemple de cet article décrit la méthode de réalisation récursive d'une classification infinie en PHP, comme suit :

<?php
$rows = array(
  array(
    &#39;id&#39; => 1,
    &#39;name&#39; => &#39;dev&#39;,
    &#39;parentid&#39; => 0
  ),
  array(
    &#39;id&#39; => 2,
    &#39;name&#39; => &#39;php&#39;,
    &#39;parentid&#39; => 1
  ),
  array(
    &#39;id&#39; => 3,
    &#39;name&#39; => &#39;smarty&#39;,
    &#39;parentid&#39; => 2
  ),
  array(
    &#39;id&#39; => 4,
    &#39;name&#39; => &#39;life&#39;,
    &#39;parentid&#39; => 0
  ),
  array(
    &#39;id&#39; => 5,
    &#39;name&#39; => &#39;pdo&#39;,
    &#39;parentid&#39; => 2
  ),
  array(
    &#39;id&#39; => 6,
    &#39;name&#39; => &#39;pdo-mysql&#39;,
    &#39;parentid&#39; => 5
  ),
  array(
    &#39;id&#39; => 7,
    &#39;name&#39; => &#39;java&#39;,
    &#39;parentid&#39; => 1
  )
);
// 72648
// 84072
function findChild(&$arr,$id){
  $childs=array();
   foreach ($arr as $k => $v){
     if($v[&#39;parentid&#39;]== $id){
       $childs[]=$v;
     }
  }
  return $childs;
}
function build_tree($root_id){
  global $rows;
  $childs=findChild($rows,$root_id);
  if(empty($childs)){
    return null;
  }
  foreach ($childs as $k => $v){
    $rescurTree=build_tree($v[id]);
    if( null !=  $rescurTree){ 
    $childs[$k][&#39;childs&#39;]=$rescurTree;
    }
  }
  return $childs;
}
$tree=build_tree(0);
echo memory_get_usage();
print_r($tree);
?>
Copier après la connexion

Résumé : Ce qui précède est l'intégralité du contenu de cet article. article, j’espère que cela pourra aider l’apprentissage de tout le monde.

Recommandations associées :

Définition et méthode de génération du code-barres PHP

php détermine et obtient l'extension du fichier Plusieurs méthodes

Classe d'encapsulation d'opération de fichier image PHP

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal