首页 > php excel 导入 导入三级分类 表格应该怎么设计才能得到想要的数据格式?

php excel 导入 导入三级分类 表格应该怎么设计才能得到想要的数据格式?

就是多个1级分类 下面有不确定个二级分类 二级分类下面有不确定个三级分类 我想获取到相关的数据组合写入数据库 但是这个格式不知道怎么排才能获取到对的数据
有空的亲们给看看 帮下 谢谢

有没有办法获取整列的值 然后根据长度去区分2列 然后再区分三列

现在获取到的数据格式是按行的 1 2 3 。。。
上图

上打印的数据

array (size=16)
  0 => 
    array (size=7)
      0 => float 1
      1 => string '销售部' (length=9)
      2 => string '销售1区' (length=10)
      3 => string '销售1科室' (length=13)
      4 => null
      5 => null
      6 => null
  1 => 
    array (size=7)
      0 => float 2
      1 => null
      2 => null
      3 => string '销售2科室' (length=13)
      4 => null
      5 => null
      6 => null
  2 => 
    array (size=7)
      0 => float 3
      1 => null
      2 => null
      3 => string '销售3科室' (length=13)
      4 => null
      5 => null
      6 => null
  3 => 
    array (size=7)
      0 => float 4
      1 => null
      2 => null
      3 => string '销售4科室' (length=13)
      4 => null
      5 => null
      6 => null
  4 => 
    array (size=7)
      0 => float 5
      1 => null
      2 => string '销售2区' (length=10)
      3 => string '销售1科室' (length=13)
      4 => null
      5 => null
      6 => null
  5 => 
    array (size=7)
      0 => float 6
      1 => null
      2 => null
      3 => string '销售2科室' (length=13)
      4 => null
      5 => null
      6 => null
  6 => 
    array (size=7)
      0 => float 7
      1 => null
      2 => null
      3 => string '销售3科室' (length=13)
      4 => null
      5 => null
      6 => null
  7 => 
    array (size=7)
      0 => float 8
      1 => null
      2 => null
      3 => string '销售4科室' (length=13)
      4 => null
      5 => null
      6 => null
  8 => 
    array (size=7)
      0 => float 9
      1 => string '市场部' (length=9)
      2 => string '市场1区' (length=10)
      3 => string '市场1科室' (length=13)
      4 => null
      5 => null
      6 => null
  9 => 
    array (size=7)
      0 => float 10
      1 => null
      2 => null
      3 => string '市场2科室' (length=13)
      4 => null
      5 => null
      6 => null
  10 => 
    array (size=7)
      0 => float 11
      1 => null
      2 => null
      3 => string '市场3科室' (length=13)
      4 => null
      5 => null
      6 => null
  11 => 
    array (size=7)
      0 => float 12
      1 => null
      2 => null
      3 => string '市场4科室' (length=13)
      4 => null
      5 => null
      6 => null
  12 => 
    array (size=7)
      0 => float 13
      1 => null
      2 => string '市场2区' (length=10)
      3 => string '市场1科室' (length=13)
      4 => null
      5 => null
      6 => null
  13 => 
    array (size=7)
      0 => float 14
      1 => null
      2 => null
      3 => string '市场2科室' (length=13)
      4 => null
      5 => null
      6 => null
  14 => 
    array (size=7)
      0 => float 15
      1 => null
      2 => null
      3 => string '市场3科室' (length=13)
      4 => null
      5 => null
      6 => null
  15 => 
    array (size=7)
      0 => float 16
      1 => null
      2 => null
      3 => string '市场4科室' (length=13)
      4 => null
      5 => null
      6 => null

把 Excel 里面数据读出到一个二维数组里面就不用我教你了吧,下面直接上代码。

<?php

$lines = [
    ['销售部', '销售1区', '销售1科室'],
    ['', '', '销售2科室'],
    ['', '', '销售3科室'],
    ['', '', '销售4科室'],
    ['', '销售2区', '销售1科室'],
    ['', '', '销售2科室'],
    ['', '', '销售3科室'],
    ['', '', '销售4科室'],
    ['市场部', '市场1区', '市场1科室'],
    ['', '', '市场2科室'],
    ['', '', '市场3科室'],
    ['', '', '市场4科室'],
    ['', '市场2区', '市场1科室'],
    ['', '', '市场2科室'],
    ['', '', '市场3科室'],
    ['', '', '市场4科室'],
];

$formatedData = [];
foreach ($lines as $line) {
    if (!empty($line[0])) {
        $level1 = $line[0];
        $formatedData[$level1] = [];
    }
    if (!empty($line[1])) {
        $level2 = $line[1];
        $formatedData[$level1][$level2] = [];
    }
    if (!empty($line[2])) {
        $level3 = $line[2];
        $formatedData[$level1][$level2][] = $level3;
    }
}

print_r($formatedData);

程序运行结果为:

Array
(

[销售部] => Array
    (
        [销售1区] => Array
            (
                [0] => 销售1科室
                [1] => 销售2科室
                [2] => 销售3科室
                [3] => 销售4科室
            )

        [销售2区] => Array
            (
                [0] => 销售1科室
                [1] => 销售2科室
                [2] => 销售3科室
                [3] => 销售4科室
            )

    )

[市场部] => Array
    (
        [市场1区] => Array
            (
                [0] => 市场1科室
                [1] => 市场2科室
                [2] => 市场3科室
                [3] => 市场4科室
            )

        [市场2区] => Array
            (
                [0] => 市场1科室
                [1] => 市场2科室
                [2] => 市场3科室
                [3] => 市场4科室
            )

    )

)


我的做法从分类那一列开始标记cat1,cat2,cat3,然后后台用个for循环出来


就按照采纳的可以获取到想要格式的数据 很正确 但是如果想对操作的一些数据进行判断 还是比较麻烦的 或者说可能判断不了 比如三级分类 判断他的父级存在不存在是判断不了的 只能判断有就添加子集 没有就添加一个新的 总体感觉这个需求的格式还是有待调整 存在一些问题 我这里可能是内部使用 要求不那么严格 严格要求的还是不能用这种格式

【热门文章】
【热门文章】