Maison  >  Article  >  développement back-end  >  Traversée récursive PHP pour obtenir une classification infinie

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

墨辰丷
墨辰丷original
2018-06-08 15:13:592110parcourir

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);
?>

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!

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