Heim > Backend-Entwicklung > PHP-Tutorial > PHP durchläuft rekursiv mehrdimensionale Arrays, um eine unendliche Klassifizierung zu erreichen

PHP durchläuft rekursiv mehrdimensionale Arrays, um eine unendliche Klassifizierung zu erreichen

高洛峰
Freigeben: 2023-03-04 19:18:02
Original
1976 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt die Methode, mit der PHP mehrdimensionale Arrays rekursiv durchläuft, um eine unendliche Klassifizierung zu erreichen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

<?php
   //$data[]=array(&#39;id&#39;=>1,&#39;parentid&#39;=>0,&#39;name&#39;=>&#39;中国&#39;,&#39;img&#39;=>&#39;52091199&#39;);
   $data[]=array(&#39;id&#39;=>1,&#39;parentid&#39;=>0,&#39;name&#39;=>&#39;中国&#39;);
   $data[]=array(&#39;id&#39;=>2,&#39;parentid&#39;=>0,&#39;name&#39;=>&#39;美国&#39;);
   $data[]=array(&#39;id&#39;=>3,&#39;parentid&#39;=>0,&#39;name&#39;=>&#39;韩国&#39;);
   $data[]=array(&#39;id&#39;=>4,&#39;parentid&#39;=>1,&#39;name&#39;=>&#39;北京&#39;);
   $data[]=array(&#39;id&#39;=>5,&#39;parentid&#39;=>1,&#39;name&#39;=>&#39;上海&#39;);
   $data[]=array(&#39;id&#39;=>6,&#39;parentid&#39;=>1,&#39;name&#39;=>&#39;广西&#39;);
   $data[]=array(&#39;id&#39;=>7,&#39;parentid&#39;=>6,&#39;name&#39;=>&#39;桂林&#39;);
   $data[]=array(&#39;id&#39;=>8,&#39;parentid&#39;=>6,&#39;name&#39;=>&#39;南宁&#39;);
   $data[]=array(&#39;id&#39;=>9,&#39;parentid&#39;=>6,&#39;name&#39;=>&#39;柳州&#39;);
   $data[]=array(&#39;id&#39;=>10,&#39;parentid&#39;=>2,&#39;name&#39;=>&#39;纽约&#39;);
   $data[]=array(&#39;id&#39;=>11,&#39;parentid&#39;=>2,&#39;name&#39;=>&#39;华盛顿&#39;);
   $data[]=array(&#39;id&#39;=>12,&#39;parentid&#39;=>3,&#39;name&#39;=>&#39;首尔&#39;);
   $tree=build_tree($data,0);
   //echo memory_get_usage();
   print_r($tree);
 function findChild(&$arr,$id){
  $childs=array();
  foreach ($arr as $k => $v){
   if($v[&#39;parentid&#39;]== $id){
    $childs[]=$v;
   }
  }
  return $childs;
 }
 function build_tree($rows,$root_id){
  $childs=findChild($rows,$root_id);
  if(empty($childs)){
   return null;
  }
 foreach ($childs as $k => $v){
  $rescurTree=build_tree($rows,$v[&#39;id&#39;]);
  if( null != $rescurTree){
  $childs[$k][&#39;childs&#39;]=$rescurTree;
  }
 }
  return $childs;
 }
?>
Nach dem Login kopieren

Laufergebnisse:

Array
(
 [0] => Array
  (
   [id] => 1
   [parentid] => 0
   [name] => 中国
   [childs] => Array
    (
     [0] => Array
      (
       [id] => 4
       [parentid] => 1
       [name] => 北京
      )
     [1] => Array
      (
       [id] => 5
       [parentid] => 1
       [name] => 上海
      )
     [2] => Array
      (
       [id] => 6
       [parentid] => 1
       [name] => 广西
       [childs] => Array
        (
         [0] => Array
          (
           [id] => 7
           [parentid] => 6
           [name] => 桂林
          )
         [1] => Array
          (
           [id] => 8
           [parentid] => 6
           [name] => 南宁
          )
         [2] => Array
          (
           [id] => 9
           [parentid] => 6
           [name] => 柳州
          )
        )
      )
    )
  )
 [1] => Array
  (
   [id] => 2
   [parentid] => 0
   [name] => 美国
   [childs] => Array
    (
     [0] => Array
      (
       [id] => 10
       [parentid] => 2
       [name] => 纽约
      )
     [1] => Array
      (
       [id] => 11
       [parentid] => 2
       [name] => 华盛顿
      )
    )
  )
 [2] => Array
  (
   [id] => 3
   [parentid] => 0
   [name] => 韩国
   [childs] => Array
    (
     [0] => Array
      (
       [id] => 12
       [parentid] => 3
       [name] => 首尔
      )
    )
  )
)
Nach dem Login kopieren

Ich hoffe, dieser Artikel wird für alle hilfreich sein, die sich mit PHP-Programmierung befassen.

Weitere verwandte Artikel darüber, wie PHP mehrdimensionale Arrays rekursiv durchläuft, um eine unendliche Klassifizierung zu erreichen, finden Sie auf der chinesischen PHP-Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage