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循环出来

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

栏目列表

广告位

澳门新葡京官网