doushen8391 2016-12-02 23:52
浏览 20

按类别划分的树图

I'm trying to build a tree-map from categories.

I have the categories (I have a lot of categories and I want to remove duplicates and show them in a tree-map view)

$cat = array(
    "Sneakers/Men",
    "Sneakers/Women",
    "Accessories/Jewellery/Men",
    "Accessories/Jewellery/Women",
    "Accessories/Jewellery/Men
");

...and I want them like this

$categories = array(
    "Sneakers" => array(
        "Men" => array(),
        "Women" => array()
    ),
    "Accessories" => array(
        "Jewellery" => array(
            "Men" => array(),
            "Women" => array()
        )
    )
);

to print them like this

- Sneakers
-- Men
-- Women

- Accessories
-- Jewellery
--- Men
--- Women
  • 写回答

2条回答 默认 最新

  • doudi4621 2016-12-03 00:31
    关注

    Try this:

    <?php
    $cat = array(
        "Sneakers/Men",
        "Sneakers/Women",
        "Accessories/Jewellery/Men",
        "Accessories/Jewellery/Women",
        "Accessories/Jewellery/Men
    ");
    
    function buildTree($categories, $result = []){
        $temp = [];
        foreach($categories as $categoryString){
            $catParts = explode('/',$categoryString);
            if(count($catParts) > 1){
                $temp[$catParts[0]][] = str_replace($catParts[0].'/','',$categoryString);
            } else {
                $temp[$catParts[0]] = [];
            }
    
        }
        foreach($temp as $elemName => $elemVal){
            $result[$elemName] = buildTree($elemVal);
        }
        return $result;
    }
    
    var_dump(buildTree($cat));
    
    评论

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭