1. 云栖社区>
  2. PHP教程>
  3. 正文

一个关于php两个数组compare实践

作者:用户 来源:互联网 时间:2017-11-30 16:02:14

php数组compare两个一个实践关于

一个关于php两个数组compare实践 - 摘要: 本文讲的是一个关于php两个数组compare实践, 之前一直写前端,入职新公司后,让我开始管理后台。做了几天,不得不福气,php 5是世界上第二好的语言。那第一呢?当然是php 7啦。 what业务上需要做一个投票系统,有一步是需要确认得分,处于安全性的考虑,肯定是要放在后台来做的。由于对

之前一直写前端,入职新公司后,让我开始管理后台。做了几天,不得不福气,php 5是世界上第二好的语言。那第一呢?当然是php 7啦。


what

业务上需要做一个投票系统,有一步是需要确认得分,处于安全性的考虑,肯定是要放在后台来做的。由于对php的数组方法不太熟悉(题外话,对于我这个一开始上手js的人来说,php的数组更像是js的array和object的混合体)。搞了半天,终于有了以下的代码。


how
先声明下数据结构

1、前端提交的answer数组


$answers = [
"1" => 1,
"2" => 2
];

2、后端从服务器获取的答案数组


$questions = [
[
"id" => 1,
"value" => 1
],
[
"id" => 2,
"value" => 3
]
];
进入正片

js中,数组的顺序并不是固定的,在不同的环境下每个子项的顺序不同,不知道php中是,但出于这种先入为主的概念,我对问题和答案的比较,做了一些校验。


for($i=0;$i<count($questions) ; $i++) {//起手就是一个for循环,以$questions的长度来循环,避免$answer提交出错
$key = $questions[$i]['id'];// 设置key,从$questions中取出id作为key来查找
$a = array_key_exists($key, $answers);//php中键名不区分类型
if($a && ($questions[$i]['value'] == $answers[$key])) {//如果$answer存在键值,再判断是否两个值相同,如果相同计数器加1
$count++;
}}print_r($count / count($questions) );//计算百分比
心得

php中数组方法仍需学习和习惯,通过前端迁就后端的方式可以实现大部分操作,但并不是长久之计

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 数组 , compare , 两个 , 一个 , 实践 关于 ,以便于您获取更多的相关知识。