题记:有人说php是前端语言,对~~说的一点不错,php的确可以写前端。但是php神就神在它也可以连接数据库,那么也就意味着它可以处理表。那么我们也可以认为php是后台语言,它能写出一个很完美的server。同样的很多人认为java是后台语言,没错,java强大的类库,强大的社区提供各种各样的开源包。但是Android基本都是java写的呀,所以~~~~
如果说测试员绝大多数时间是在写测试用例和执行测试用例的话,那么后台绝大多数时间做的就是写接口和处理字符集(ps:处理bug这个梗就不多说了)。写这篇文章的目的主要是为了帮助和我一样的初学者对php处理字符集有更深刻的了解,也是为了帮助那些正在努力着的测试员,我们一起用测试员的角度来揭开那些“搬砖工”们每天都在干什么。话不多说,让我们进入正题
如图1所示:如果你是php初学者请务必理解图中操作步骤,如果你是测试员,那么可以不需要理解每句都是具体含义,红色字体部分,我已经做了详细说明,1->配置数据库信息连接上数据库->2.为了防止输入的中文是乱码set utf8一下->3.为了防止sql注入我们选择用prepare来处理sql命令->4.用execut来处理sql 并赋值到一个容器中,因为我们要对这个数据做进一步处理->5.使用fetchall处理刚刚那个容器,获得我们想要的数据->6.此时的二维数组贼难看,数据包着数据,我们需要做进一步处理这里我们选择foreach强序遍历。(说白了就是一层一层的剥壳)
图一
如下图2所示,我们返回的绝大数情况下都是二维数组,遇到那些写的sql跟狗屎一样的程序的话,那就更难剥,所以写sql的时候最好精准定位,查两条数据,我们绝对的不返回三条数据,这样的话处理数组就会方便很多
图二
如图3所示返回的结果是二维数组,可是我只需要一个key为id value为name的一维数组。那我们该怎么办呢?遇到这种问题想都不用想,直接foreach!
定义一个空的数组容器$a=[];
foreac $数组名($数组名 as $k=>$v){
$a[]=$v[‘name’];//遍历出了所有的$v,把所有name的值赋给空数组
}
//效果$a = ['张三', '李四', '王五', '李雷', '韩梅梅'];
图三
那么我们想做一个指定k的操作又该怎么办呢?
foreach ($arr as $k => $v) {
$arr2[$v['id']] = $v;//$v['id']我们把id获取到以后,把它定义到新的数组里面就可以了
}
作者:测试狗Tom
链接:https://www.jianshu.com/p/440735a2a88c