场景:
朋友有数万条.xlsx的数据,不知道是怎么来的,也不知道什么原因,订单号跟订单描述写入到了同一栏---订单栏;
现在因为业务需要,想把订单号提取出来单独放一栏;
对一下计算机小白来说,一条一条的复制粘贴几万条数据可能需要几天的时间,而且难免会操作失误造成数据不准确。
思路:
那多对于PHP程序员来说,这个逻辑思路非常的简单;
首先把表格导入到数据库里面去,PHP操作mysql绝配;
然后在数据库里面查询订单信息,在每一条订单信息里面匹配订单号;
然后将匹配的订单号插入到对应的列里面;
这样整个流程就结束了;
剩下的交给计算机完成,肯定用不了一个小时的时间。
解决:
创建一个数据表,对应.xlsx里面的表头;
(这里补充一下,如果.xlsx表里面没有唯一标识字段,最好创建一个,为后面PHP操作提供便利)
打开mysql管理终端Navicat;
连接之后找到刚刚创建的表;
右键有一个导入向导;
下一步下一步,选择导入的.xlsx文件,开始导入;
然后刷新,数据就导入了。
将.xlsx数据导入到mysq数据表l就完成了第二步,噢,第一步是建表;
然后在写程序:
连接上数据库,并选择刚创建的表所在的数据库开始操作;不管是mysql,mysqli还是pdo或者直接操作框架,数据库连接的方式不是难点;
查询订单信息,获得查询结果;简单的select语句,入门就可以操作;
遍历查询的结果,foreach函数;
取出数组里面的每一项,开始使用正则表达式匹配订单号;
匹配之前先要观察订单号的特点;首先都是数字,那么就匹配出数字,然后是以0开头的数字,就再加上一个限定条件开头是0,然后长度都是12个字节,那就再加上一个字节限制;
最后就是这样的 "/0\d{11}/"
来个正则匹配,用这个函数preg_match_all($preg,$str,$match);
匹配的结果就是订单号了;
然后再对应着修改原来的订单号,将提取的订单号插入进去就完成了。