php树形结构算法:&引用的妙用

广告位招租
扫码页面底部二维码联系

在最近的项目中,我需要从数据库中挑选出带原创内容,盗版必究。本文版权归作者所有,未经授权不得转载。有层级关系的数据,并根据记录的paren【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】t_id构建数据之间的父子关系,最终形成未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。一个树状结构的父子孙关系结构,并用数组的【版权所有】唐霜 www.tangshuang.net本文版权归作者所有,未经授权不得转载。形式保存起来。经过搜索和研究,最终找到了【本文首发于唐霜的博客】未经授权,禁止复制转载。下方的算法代码,仅做参考。

【未经授权禁止转载】【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。

首先,查询得到的数据以数组的形式返回:

原创内容,盗版必究。【访问 www.tangshuang.n【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】et 获取更多精彩内容】【版权所有】唐霜 www.tangshu著作权归作者所有,禁止商业用途转载。转载请注明出处:www.tangshuang.netang.net
array(
  array('id' => 5,'parent_id' => 0,...),
  array('id' => 9,'parent_id' => 0,...),
  array('id' => 12,'parent_id' => 5,...),
  array('id' => 19,'parent_id' => 5,...),
  array('id' => 21,'parent_id' => 0,...),
  array('id' => 23,'parent_id' => 12,...),
  array('id' => 24,'parent_id' => 12,...),
  array('id' => 26,'parent_id' => 23,...),
  array('id' => 29,'parent_id' => 9,...),
  array('id' => 31,'parent_id' => 12,...),
  ...
)

通过观察,我们可以发现顶级数组是由包含i【访问 www.tangshuang.net 获取更多精彩内容】【关注微信公众号:wwwtangshuangnet】d,parent_id的数组组成的,这些未经授权,禁止复制转载。【本文受版权保护】数组之间存在着一定的父子关系,而且仅以p转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.netarent_id的形式表现出来。现在,我【原创不易,请尊重版权】【本文受版权保护】们实际上想要得到下面的结果:

【未经授权禁止转载】转载请注明出处:www.tangshua本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。ng.net
array(
  array(
    'id' => 5,
    'children' => array(
      array(
        'id' => 12,
        'children' => array(
          array(
            'id' => 23,
            'children' => array(
              array('id' => 26)
            )
          ),
          array('id' => 24),
          array('id' => 31)
        )
      ),
      array('id' => 19)
    )
  ),
  array(
    'id' => 9,
    'children' => array(
      array('id' => 29)
    )
  ),
  array('id' => 21),
  ...
)

也就是通过数组的形式,用一个childr【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.neten元素来包含该元素的子元素,并且层级分【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net明。

【作者:唐霜】【访问 www.tangshuang.n【版权所有】唐霜 www.tangshuang.net【原创内容,转载请注明出处】et 获取更多精彩内容】

那么如何来快速实现呢?我们通过下面一个函【关注微信公众号:wwwtangshuangnet】未经授权,禁止复制转载。数来实现。

未经授权,禁止复制转载。【访问 www.tangshuang.n未经授权,禁止复制转载。【原创内容,转载请注明出处】et 获取更多精彩内容】【版权所有】唐霜 www.tangshu本文作者:唐霜,转载请注明出处。【本文受版权保护】ang.net本文作者:唐霜,转载请注明出处。
function array_tree($array) {
  $result = array();
  $tmp = array();
  foreach($array as $item) {
    if($item['parent_id'] == 0) {
      $i = count($result);
      $result[$i] = $item;
      $id = $item['id'];
      $tmp[$id] = &$result[$i];
    }
    else {
      $id = $item['id'];
      $parent_id = $item['parent_id'];
      $parent = $tmp[$parent_id];
      $i = count($parent['children']);
      $tmp[$parent_id]['children'][$i] = $item;
      $tmp[$id] = &$tmp[$parent_id]['children'][$i];
    }
  }
  return $result;
}

上面我用红色标注了&符号,具体是未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net什么意思,及其原理又是怎么实现的呢?

【版权所有,侵权必究】【本文受版权保护】【原创内容,转载请注明出处】本文作者:唐霜,转载请注明出处。

&引用是PHP中非常特殊的一种变本文作者:唐霜,转载请注明出处。本文版权归作者所有,未经授权不得转载。量引用方式。我们不过多深入的去讲解,简单本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。的讲,就是:

转载请注明出处:www.tangshua【未经授权禁止转载】【版权所有】唐霜 www.tangshuang.netng.net【版权所有】唐霜 www.tangshu【版权所有】唐霜 www.tangshuang.net【作者:唐霜】ang.net【本文受版权保护】

当$b = &$a时,$b和$a本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】同时引用同一个内容(指针指向同一块内存)未经授权,禁止复制转载。【原创内容,转载请注明出处】,无论$a或$b谁发生变化,这个内容都会【未经授权禁止转载】【关注微信公众号:wwwtangshuangnet】发生变化,进而呈现为$a和$b保持同步的著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。变化。

【版权所有】唐霜 www.tangshu【原创不易,请尊重版权】【版权所有,侵权必究】ang.net转载请注明出处:www.tangshua【访问 www.tangshuang.net 获取更多精彩内容】【访问 www.tangshuang.net 获取更多精彩内容】ng.net
本文作者:唐霜,转载请注明出处。【访问 www.tangshuang.n著作权归作者所有,禁止商业用途转载。原创内容,盗版必究。et 获取更多精彩内容】原创内容,盗版必究。

要解除这种引用,只有先将引用释放。可是并【关注微信公众号:wwwtangshuangnet】【本文受版权保护】没有一种运算可以达到释放引用的目的,所以【版权所有,侵权必究】转载请注明出处:www.tangshuang.net我们可以通过unset($a)的方式,也【原创内容,转载请注明出处】本文版权归作者所有,未经授权不得转载。可以通过重新引用另外一个变量来释放原来的【原创内容,转载请注明出处】未经授权,禁止复制转载。引用(但是又和其他变量引用,比如$b =本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshuang.net &$c)。

未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。【作者:唐霜】

这时,我们再来分析上面的实现函数。

【版权所有,侵权必究】本文作者:唐霜,转载请注明出处。

$tmp[$id] = &$re未经授权,禁止复制转载。本文作者:唐霜,转载请注明出处。sult[$i];

著作权归作者所有,禁止商业用途转载。【原创不易,请尊重版权】【版权所有】唐霜 www.tangshu【关注微信公众号:wwwtangshuangnet】著作权归作者所有,禁止商业用途转载。ang.net

这一句保证了当无论$tmp[$id]还是【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net$result[$i]发生变化,都会让另【作者:唐霜】【作者:唐霜】外一个值同时发生变化。而

本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshu本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。ang.net【本文受版权保护】【原创不易,请尊重版权】

$tmp[$parent_id][【原创不易,请尊重版权】转载请注明出处:www.tangshuang.net216;children’]【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。[$i] = $item;

【转载请注明来源】本文版权归作者所有,未经授权不得转载。

实际上导致$result[$parent【本文首发于唐霜的博客】【本文受版权保护】_id]发生了变化。

【版权所有,侵权必究】未经授权,禁止复制转载。

用我们上面的数据进行演示验证:

【关注微信公众号:wwwtangshua【转载请注明来源】本文版权归作者所有,未经授权不得转载。ngnet】【版权所有】唐霜 www.tangshu【本文受版权保护】【本文受版权保护】ang.net【未经授权禁止转载】

[0] => array(R本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.net16;id’ => 5【未经授权禁止转载】著作权归作者所有,禁止商业用途转载。,’parent_id转载请注明出处:www.tangshuang.net【本文首发于唐霜的博客】217; => 0,…著作权归作者所有,禁止商业用途转载。本文作者:唐霜,转载请注明出处。)

转载请注明出处:www.tangshua【本文受版权保护】【原创不易,请尊重版权】ng.net【作者:唐霜】

$result[0] = array(&【本文首发于唐霜的博客】未经授权,禁止复制转载。#8216;id’ =>本文作者:唐霜,转载请注明出处。【本文受版权保护】; 5,’parent_id【原创不易,请尊重版权】【作者:唐霜】’ => 0,R【访问 www.tangshuang.net 获取更多精彩内容】【原创内容,转载请注明出处】30;)

【转载请注明来源】【访问 www.tangshuang.n转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.netet 获取更多精彩内容】【版权所有】唐霜 www.tangshu【版权所有】唐霜 www.tangshuang.net【未经授权禁止转载】ang.net

$tmp[5] = &$resu著作权归作者所有,禁止商业用途转载。【本文受版权保护】lt[0]  // 第一个&出现【版权所有,侵权必究】未经授权,禁止复制转载。

【作者:唐霜】【原创内容,转载请注明出处】原创内容,盗版必究。

$tmp[5] = array(R【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。16;id’ => 5转载请注明出处:www.tangshuang.net【版权所有,侵权必究】,’parent_id【版权所有】唐霜 www.tangshuang.net【原创不易,请尊重版权】217; => 0,…本文版权归作者所有,未经授权不得转载。【版权所有,侵权必究】)  // 内部结果

【本文受版权保护】原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。
著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。

而当执行往下执行,碰到array(本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。216;id’ => 【关注微信公众号:wwwtangshuangnet】转载请注明出处:www.tangshuang.net12,’parent_id&未经授权,禁止复制转载。原创内容,盗版必究。#8217; => 5,̷【转载请注明来源】【原创不易,请尊重版权】0;)时,发生了:

本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshua本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】ngnet】

[2]=> array(̵本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。6;id’ => 12【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。,’parent_id转载请注明出处:www.tangshuang.net【原创不易,请尊重版权】217; => 5,…转载请注明出处:www.tangshuang.net原创内容,盗版必究。)

【版权所有】唐霜 www.tangshu【原创内容,转载请注明出处】原创内容,盗版必究。ang.net【版权所有】唐霜 www.tangshu【版权所有】唐霜 www.tangshuang.net【本文受版权保护】ang.net【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。

$tmp[5][‘child【原创不易,请尊重版权】本文作者:唐霜,转载请注明出处。ren’][0] = arr本文作者:唐霜,转载请注明出处。【原创内容,转载请注明出处】ay(‘id’ 转载请注明出处:www.tangshuang.net转载请注明出处:www.tangshuang.net=> 12,’pare本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。nt_id’ => 5【访问 www.tangshuang.net 获取更多精彩内容】【版权所有,侵权必究】,…) // ①

【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。【本文受版权保护】

由于&引用的关系,所以实际上

【转载请注明来源】【访问 www.tangshuang.n转载请注明出处:www.tangshuang.net原创内容,盗版必究。et 获取更多精彩内容】【版权所有】唐霜 www.tangshu【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。ang.net本文作者:唐霜,转载请注明出处。

$result[0][‘childrenR本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。17;][0] = array(R本文作者:唐霜,转载请注明出处。【本文首发于唐霜的博客】16;id’ => 1【原创不易,请尊重版权】未经授权,禁止复制转载。2,’parent_id&#本文作者:唐霜,转载请注明出处。【作者:唐霜】8217; => 5,…原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。;) // 内部结果

【转载请注明来源】【访问 www.tangshuang.n未经授权,禁止复制转载。【作者:唐霜】et 获取更多精彩内容】【版权所有】唐霜 www.tangshu转载请注明出处:www.tangshuang.net【作者:唐霜】ang.net
【未经授权禁止转载】【本文受版权保护】

这个时候$temp[5]是一个已经包含c【未经授权禁止转载】【原创不易,请尊重版权】hildren子元素的二维数组,如果往下【本文受版权保护】【作者:唐霜】执行遇到array(‘id&【转载请注明来源】【原创内容,转载请注明出处】#8217; => 23,R【本文首发于唐霜的博客】【未经授权禁止转载】17;parent_id’ 未经授权,禁止复制转载。【本文首发于唐霜的博客】=> 12,…)时,你转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。就会发现

【版权所有】唐霜 www.tangshu【版权所有,侵权必究】【原创不易,请尊重版权】ang.net本文版权归作者所有,未经授权不得转载。【原创内容,转载请注明出处】本文版权归作者所有,未经授权不得转载。

[5]=> array(̵【版权所有,侵权必究】未经授权,禁止复制转载。6;id’ => 23【原创内容,转载请注明出处】本文版权归作者所有,未经授权不得转载。,’parent_id【本文受版权保护】【本文受版权保护】217; => 12,…本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】;)

著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。

$tmp[12][‘chil【版权所有,侵权必究】【关注微信公众号:wwwtangshuangnet】dren’][0] = ar【版权所有】唐霜 www.tangshuang.net【原创不易,请尊重版权】ray(‘id’【作者:唐霜】【未经授权禁止转载】 => 23,’par【未经授权禁止转载】【本文受版权保护】ent_id’ => 原创内容,盗版必究。原创内容,盗版必究。12,…)

未经授权,禁止复制转载。未经授权,禁止复制转载。【关注微信公众号:wwwtangshua著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。ngnet】

$result[?][‘children原创内容,盗版必究。【转载请注明来源】217;][0] = array(本文版权归作者所有,未经授权不得转载。本文版权归作者所有,未经授权不得转载。216;id’ => 【未经授权禁止转载】【原创内容,转载请注明出处】23,’parent_id&【访问 www.tangshuang.net 获取更多精彩内容】本文版权归作者所有,未经授权不得转载。#8217; => 12,R【原创内容,转载请注明出处】【版权所有】唐霜 www.tangshuang.net30;) // 我们以为会发生的结果,其本文版权归作者所有,未经授权不得转载。原创内容,盗版必究。实并没有发生

【关注微信公众号:wwwtangshua【版权所有】唐霜 www.tangshuang.net【转载请注明来源】ngnet】【未经授权禁止转载】【本文首发于唐霜的博客】本文版权归作者所有,未经授权不得转载。
转载请注明出处:www.tangshua原创内容,盗版必究。【本文受版权保护】ng.net【本文受版权保护】未经授权,禁止复制转载。

因为没有找到一个$tmp[12] = &【原创不易,请尊重版权】未经授权,禁止复制转载。amp; $result[?],也就是说【本文受版权保护】转载请注明出处:www.tangshuang.net没有一个与$tmp[12]对应的引用,$【本文受版权保护】【作者:唐霜】tmp[12]的变化不会引起其他任何值的原创内容,盗版必究。【访问 www.tangshuang.net 获取更多精彩内容】变化,$tmp[12]这个家伙会在返回值原创内容,盗版必究。原创内容,盗版必究。中丢失(因为返回值是$result)。

【转载请注明来源】转载请注明出处:www.tangshua【原创不易,请尊重版权】【原创内容,转载请注明出处】ng.net【原创内容,转载请注明出处】原创内容,盗版必究。

$tmp[$id] = &$tm【版权所有,侵权必究】转载请注明出处:www.tangshuang.netp[$parent_id][‘【未经授权禁止转载】【版权所有】唐霜 www.tangshuang.net;children’][$i原创内容,盗版必究。【本文受版权保护】];这一句起到了关键性作用。加上这一句之后,【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.net我们再来跑一遍array(‘未经授权,禁止复制转载。【版权所有】唐霜 www.tangshuang.netid’ => 23,&【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshuang.net#8217;parent_id̵【未经授权禁止转载】未经授权,禁止复制转载。7; => 12,…)著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。这个元素。

【本文受版权保护】【版权所有,侵权必究】原创内容,盗版必究。【原创不易,请尊重版权】

[2]=> array(̵【转载请注明来源】【本文首发于唐霜的博客】6;id’ => 12【版权所有】唐霜 www.tangshuang.net【作者:唐霜】,’parent_id【作者:唐霜】著作权归作者所有,禁止商业用途转载。217; => 5,…【本文首发于唐霜的博客】【未经授权禁止转载】)

【版权所有】唐霜 www.tangshu转载请注明出处:www.tangshuang.net原创内容,盗版必究。ang.net【原创不易,请尊重版权】原创内容,盗版必究。未经授权,禁止复制转载。

$tmp[5][‘child【原创不易,请尊重版权】转载请注明出处:www.tangshuang.netren’][0] = arr【作者:唐霜】著作权归作者所有,禁止商业用途转载。ay(‘id’ 【原创内容,转载请注明出处】【原创不易,请尊重版权】=> 12,’pare【访问 www.tangshuang.net 获取更多精彩内容】【本文受版权保护】nt_id’ => 5【转载请注明来源】【版权所有】唐霜 www.tangshuang.net,…)  // 重新从①开始未经授权,禁止复制转载。转载请注明出处:www.tangshuang.net演示

【转载请注明来源】【原创不易,请尊重版权】

$result[0][‘childrenR著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。17;][0] = array(‘id̵转载请注明出处:www.tangshuang.net【转载请注明来源】7; => 12,’p本文作者:唐霜,转载请注明出处。【本文受版权保护】arent_id’ =>【版权所有】唐霜 www.tangshuang.net转载请注明出处:www.tangshuang.net; 5,…) // 内部结果

本文版权归作者所有,未经授权不得转载。【版权所有】唐霜 www.tangshu【版权所有,侵权必究】原创内容,盗版必究。ang.net【版权所有】唐霜 www.tangshu未经授权,禁止复制转载。【原创不易,请尊重版权】ang.net

$tmp[12] = &$tmp本文版权归作者所有,未经授权不得转载。【访问 www.tangshuang.net 获取更多精彩内容】[5][‘children&【本文受版权保护】【版权所有】唐霜 www.tangshuang.net#8217;][0]  // 第二个&a【版权所有】唐霜 www.tangshuang.net【版权所有】唐霜 www.tangshuang.netmp;出现了

【原创不易,请尊重版权】【本文受版权保护】

[5]=> array(̵【未经授权禁止转载】本文作者:唐霜,转载请注明出处。6;id’ => 23【关注微信公众号:wwwtangshuangnet】本文作者:唐霜,转载请注明出处。,’parent_id著作权归作者所有,禁止商业用途转载。【原创不易,请尊重版权】217; => 12,…【本文首发于唐霜的博客】本文作者:唐霜,转载请注明出处。;)

【版权所有】唐霜 www.tangshu本文作者:唐霜,转载请注明出处。【关注微信公众号:wwwtangshuangnet】ang.net本文作者:唐霜,转载请注明出处。

$tmp[12][‘chil【作者:唐霜】【转载请注明来源】dren’][0] = ar【未经授权禁止转载】【转载请注明来源】ray(‘id’【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。 => 23,’par【未经授权禁止转载】本文作者:唐霜,转载请注明出处。ent_id’ => 转载请注明出处:www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】12,…)

【原创内容,转载请注明出处】【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。

由于第二个&引用的原因,实际上发原创内容,盗版必究。未经授权,禁止复制转载。生了:

【作者:唐霜】【本文首发于唐霜的博客】【版权所有】唐霜 www.tangshu【版权所有】唐霜 www.tangshuang.net未经授权,禁止复制转载。ang.net

$tmp[5][‘child【关注微信公众号:wwwtangshuangnet】【访问 www.tangshuang.net 获取更多精彩内容】ren’][0][‘childrenR【关注微信公众号:wwwtangshuangnet】【本文受版权保护】17;][0] = array(R【版权所有,侵权必究】本文作者:唐霜,转载请注明出处。16;id’ => 2原创内容,盗版必究。【未经授权禁止转载】3,’parent_id&#【本文受版权保护】本文作者:唐霜,转载请注明出处。8217; => 12,̷【访问 www.tangshuang.net 获取更多精彩内容】【版权所有】唐霜 www.tangshuang.net0;) // 内部结果

【原创不易,请尊重版权】未经授权,禁止复制转载。

$result[0][‘childrenR本文版权归作者所有,未经授权不得转载。【关注微信公众号:wwwtangshuangnet】17;][0][‘child转载请注明出处:www.tangshuang.net著作权归作者所有,禁止商业用途转载。ren’][0] = arr原创内容,盗版必究。转载请注明出处:www.tangshuang.netay(‘id’ 【关注微信公众号:wwwtangshuangnet】【版权所有】唐霜 www.tangshuang.net=> 23,’pare【作者:唐霜】著作权归作者所有,禁止商业用途转载。nt_id’ => 1【原创内容,转载请注明出处】【转载请注明来源】2,…) // 内部结果

本文作者:唐霜,转载请注明出处。原创内容,盗版必究。【版权所有,侵权必究】【版权所有】唐霜 www.tangshu【关注微信公众号:wwwtangshuangnet】【未经授权禁止转载】ang.net
【版权所有】唐霜 www.tangshu著作权归作者所有,禁止商业用途转载。著作权归作者所有,禁止商业用途转载。ang.net【本文受版权保护】本文版权归作者所有,未经授权不得转载。【作者:唐霜】

这个时候你可能已经看出了端倪。父子关系变【转载请注明来源】原创内容,盗版必究。成了 5 > 12 > 23【版权所有,侵权必究】原创内容,盗版必究。,而这组关系,全部存储在了id=5的这个【作者:唐霜】【原创内容,转载请注明出处】顶级元素中,以多重的children元素【原创不易,请尊重版权】著作权归作者所有,禁止商业用途转载。实现了父子孙结构。

未经授权,禁止复制转载。转载请注明出处:www.tangshua著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。ng.net本文作者:唐霜,转载请注明出处。

如此循环往复,你就会发现,无论你的父子关转载请注明出处:www.tangshuang.net未经授权,禁止复制转载。系多深,这个函数都能准确的构建对应的父子【本文受版权保护】【版权所有】唐霜 www.tangshuang.net关系,最终形成树形结构存储在$resul【访问 www.tangshuang.net 获取更多精彩内容】本文作者:唐霜,转载请注明出处。t中,将其返回。

【本文首发于唐霜的博客】【转载请注明来源】【本文受版权保护】

该算法有一个问题,就是要求原始数组中,p【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】arent_id必须出现在该元素之前,否【作者:唐霜】【原创内容,转载请注明出处】则将导致该元素无法加入到某个元素的chi著作权归作者所有,禁止商业用途转载。【本文受版权保护】ldren中去。

【转载请注明来源】著作权归作者所有,禁止商业用途转载。【访问 www.tangshuang.n转载请注明出处:www.tangshuang.net本文版权归作者所有,未经授权不得转载。et 获取更多精彩内容】转载请注明出处:www.tangshua【未经授权禁止转载】【本文受版权保护】ng.net

2015-11-16 6942

为价值买单,打赏一杯咖啡

本文价值69.42RMB