yuptyy
V2EX  ›  PHP

php 无限极分类 不递归有好的办法么

  •  
  •   yuptyy · Apr 1, 2015 · 4599 views
    This topic created in 4148 days ago, the information mentioned may be changed or developed.

    $arr = [
    1 => ['name' => '江苏', 'pid' => 0],
    2 => ['name' => '徐州', 'pid' => 1],
    3 => ['name' => '南京', 'pid' => 1],
    4 => ['name' => '泰州', 'pid' => 1],
    5 => ['name' => '靖江', 'pid' => 4],
    6 => ['name' => '西来', 'pid' => 5],
    7 => ['name' => '常州', 'pid' => 1],
    8 => ['name' => '新北区', 'pid' => 7],
    9 => ['name' => '百草苑', 'pid' => 8],
    10 => ['name' => '天宁区', 'pid' => 7]
    ];

    不使用递归, 引用 该怎么实现呢 0.0

    13 replies    2015-04-02 03:15:46 +08:00
    mhycy
        1
    mhycy  
       Apr 1, 2015
    你想达到怎样的输出效果?
    ksc010
        2
    ksc010  
       Apr 1, 2015
    给每个分类记录他的parentid 和所有子类id
    yuptyy
        3
    yuptyy  
    OP
       Apr 1, 2015
    这样的效果

    [
    name => 江苏,
    pid => 0,
    child => [
    [
    name => 徐州,
    pid => 1,
    child => []
    ],
    [
    name => 泰州,
    pid => 1,
    child => [
    [
    name => 靖江,
    pid => 4,
    child => [
    name => 西来
    pid => 5,
    child => []
    ]
    ]
    ]
    ]
    ...
    ]
    @mhycy
    @mhycy
    alex321
        4
    alex321  
       Apr 1, 2015   ❤️ 1
    zhujinliang
        5
    zhujinliang  
       Apr 1, 2015
    用类
    invite
        6
    invite  
       Apr 1, 2015   ❤️ 1
    这个跟目录一个道理:

    用绝对路径,直接可以搜索以XX打头。
    否则相对路径都需要类似递归的吧。
    tabris17
        7
    tabris17  
       Apr 1, 2015   ❤️ 1
    左右值
    cevincheung
        8
    cevincheung  
       Apr 1, 2015
    http://www.oschina.net/code/snippet_173183_11767

    function genTree5($items) {
    foreach ($items as $item)
    $items[$item['pid']]['son'][$item['id']] = &$items[$item['id']];
    return isset($items[0]['son']) ? $items[0]['son'] : array();
    }

    function genTree9($items) {
    $tree = array(); //格式化好的树
    foreach ($items as $item)
    if (isset($items[$item['pid']]))
    $items[$item['pid']]['son'][] = &$items[$item['id']];
    else
    $tree[] = &$items[$item['id']];
    return $tree;
    }
    sambohuang
        9
    sambohuang  
       Apr 1, 2015 via Android   ❤️ 1
    左右键
    ywisax
        10
    ywisax  
       Apr 1, 2015   ❤️ 1
    上面也提到了,用mptt吧。
    imink
        11
    imink  
       Apr 1, 2015   ❤️ 1
    楼主参考这个包。https://github.com/etrepat/baum
    elvba
        12
    elvba  
       Apr 1, 2015   ❤️ 1
    http://en.wikipedia.org/wiki/Nested_set_model
    嵌套集合模型,左右值
    Septembers
        13
    Septembers  
       Apr 2, 2015 via Android
    扔前端处理吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1106 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 17:36 · PVG 01:36 · LAX 10:36 · JFK 13:36
    ♥ Do have faith in what you're doing.