Maison >développement back-end >tutoriel php >mysql - php excel 导入 导入三级分类 表格应该怎么设计才能得到想要的数据格式?
就是多个1级分类 下面有不确定个二级分类 二级分类下面有不确定个三级分类 我想获取到相关的数据组合写入数据库 但是这个格式不知道怎么排才能获取到对的数据
有空的亲们给看看 帮下 谢谢
有没有办法获取整列的值 然后根据长度去区分2列 然后再区分三列
现在获取到的数据格式是按行的 1 2 3 。。。
上图
上打印的数据
<code>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</code>
就是多个1级分类 下面有不确定个二级分类 二级分类下面有不确定个三级分类 我想获取到相关的数据组合写入数据库 但是这个格式不知道怎么排才能获取到对的数据
有空的亲们给看看 帮下 谢谢
有没有办法获取整列的值 然后根据长度去区分2列 然后再区分三列
现在获取到的数据格式是按行的 1 2 3 。。。
上图
上打印的数据
<code>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</code>
把 Excel 里面数据读出到一个二维数组里面就不用我教你了吧,下面直接上代码。
<code><?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);</code></code>
程序运行结果为:
Array
(
<code>[销售部] => 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科室 ) ) </code>
)
我的做法从分类那一列开始标记cat1,cat2,cat3,然后后台用个for循环出来
就按照采纳的可以获取到想要格式的数据 很正确 但是如果想对操作的一些数据进行判断 还是比较麻烦的 或者说可能判断不了 比如三级分类 判断他的父级存在不存在是判断不了的 只能判断有就添加子集 没有就添加一个新的 总体感觉这个需求的格式还是有待调整 存在一些问题 我这里可能是内部使用 要求不那么严格 严格要求的还是不能用这种格式