Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用php分解和重新匹配数据

用php分解和重新匹配数据
EN

Stack Overflow用户
提问于 2019-03-21 04:14:18
回答 1查看 41关注 0票数 0

您好,请帮我解决这个问题,我在表data_result中有这样的数据

代码语言:javascript
运行
AI代码解释
复制
  | uniqueid | question | answers | remark |
  | 10001 | Q0003,Q0001,Q0004| Yes,No,Yes | ,none,yes |
  | 10002 | Q0002,Q0009,Q0008 | No,Yes,Yes | yes,,No |
  | 10003 | Q0007,Q0003,Q0006 | Yes,Yes,Yes | ,,, |

我有一张master_question桌子

代码语言:javascript
运行
AI代码解释
复制
  | que_code | question |
  | Q0001  | Where do you live ? |
  | Q0002  | Your birthday ? |
  | Q0003  | ...... |
  | ....   | ...... |

我想像这样展示结果

代码语言:javascript
运行
AI代码解释
复制
|uniqueid|Q0001|remark|Q0002|remark|Q0003|remark| ...
|10001 | No | none | - | - | Yes | - | ...
|10002 | - | - | No | Yes | - | - | ...

我试了一下,但结果不正确

代码语言:javascript
运行
AI代码解释
复制
foreach ($get_data_all->result() as $data) {
    $resultdata[$data->uniqueid]['uniqueid'] = $data->uniqueid;
    $que = $data->questionList;
    $ans = $data->answerList;
    $rem = $data->remarksList;

    $question = explode(',',$que);
    $answer = explode(',',$ans);
    $remark = explode(',',$rem);

    $new = array();
    for($i=0;$i<count($question);$i++){
        if(isset($question[$i])){
            $question[$i] = $question[$i];
        }
        else {
            $question[$i] = null;
        }
        if(isset($answer[$i])){
            $answer[$i] = $answer[$i];
        }
        else {
            $answer[$i] = null;
        }
        if(isset($remark[$i])){
            $remark[$i] = $remark[$i];
        }
        else {
            $remark[$i] = null;
        }
        $new[$i] = array("question"=>$question[$i],"answer"=>$answer[$i],"remark"=>$remark[$i]);
    }

    $master_question = $this->m_report_result->master_question();

    foreach ($master_question->result() as $mque) {
        foreach ($new as $nilai) {
            $nilai = (object)$nilai;
            //echo "$nilai->question\n";
            //echo "$nilai->answer\n";
            //echo "$nilai->remark\n";
            if($mque->question_code == $nilai->question){
                $resultdata[$data->uniqueid]['answer'] = $nilai->answer;
                $resultdata[$data->uniqueid]['remark'] = $nilai->remark;  
            }else{
                $resultdata[$data->uniqueid]['answer'] = '';
                $resultdata[$data->uniqueid]['remark'] = '';
            }
        }
    }
}

我坚持这一点,我尝试循环主问题,并将答案和备注值与问题代码进行匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-21 05:16:15

使$new成为一个关联数组,其关键字是问题ID。这样你就不需要嵌套循环了,你可以使用isset()来测试这个问题是否有结果。

代码语言:javascript
运行
AI代码解释
复制
$question_list = $this->m_report_result->master_question()->result();
echo "<table><tr><th>uniqueid</td>";
foreach ($question_list as $mque) {
    echo "<th>$mque->question_code</th><th>remark</th>";
}
echo "</tr>";

foreach ($get_data_all->result() as $data) {
    $que = $data->questionList;
    $ans = $data->answerList;
    $rem = $data->remarksList;

    $questions = explode(',',$que);
    $answers = explode(',',$ans);
    $remarks = explode(',',$rem);

    $new = array();
    foreach ($questions as $i => $question){
        $answer = $answers[$i] ?? null;
        $remark = $remarks[$i] ?? null;
        $new[$question] = array("answer"=>$answer[$i],"remark"=>$remark[$i]);
    }
    echo "<tr><td>$data->uniqueid]</td>";
    foreach ($question_list as $mque) {
        $que_code = $mque->question_code;
        if (isset($new[$que_code])) {
            echo "<td>{$new[$que_code]['answer']}</td><td>{$new[$que_code]['remark']}</td>";
        } else {
            echo "<td>-</td><td>-</td>";
        }
    }
    echo "</tr>";
}
echo "</table>";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55273690

复制
相关文章
用Python进行时间序列分解和预测
本文介绍了用Python进行时间序列分解的不同方法,以及如何在Python中进行时间序列预测的一些基本方法和示例。
Datawhale
2021/01/07
3.8K0
用Python进行时间序列分解和预测
Swoole:重新定义PHP
PHP语言的异步、并行、高性能网络通信框架,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole可以广泛应用于互联网、移动通信、企业软件、云计算、网络游戏、物联网、车联网、智能家居等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。
黄啊码
2020/05/29
7860
数据降维:特征值分解和奇异值分解的实战分析
《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来! 01 — 回顾 这几天推送了关于机器学习数据预处理之降维算法,介绍了通过降维提取数据的主成分的背景,特征值分解法,奇异值分解法的相关原理。 现在我们再回顾下这些问题,首先,提取主成分的必要性,从数字信号的角度分析,主成分时方差较大,称为信号,而噪声是方差较小的;极限讲,如果100个样本点都汇集成一个点,也就是方差为0,那么不就相当于我们手上有1个
double
2018/04/02
1.6K0
数据降维:特征值分解和奇异值分解的实战分析
PHP数据结构(三)——运用栈实现括号匹配
PHP数据结构(三)——运用栈实现括号匹配 (原创内容,转载请注明来源,谢谢) 栈在数据结构上是一种特殊的线性表,其限制是仅允许在表的一端进行插入和删除运算,即LIFO(后进先出),越往入栈的数据在
用户1327360
2018/03/07
1.2K0
PHP数据结构(三)——运用栈实现括号匹配
用Spark学习矩阵分解推荐算法
    在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法。
刘建平Pinard
2018/08/14
1.5K0
放弃偏见,重新认识 PHP
一位名叫Brent的程序员小哥,写了一篇博客文章,介绍了PHP在2019年的情况。
猿哥
2019/05/30
8440
PHP--正则表达式和样式匹配--小记
POSIX 风格的,有些低版本软件支持,目前高版本的有些已经废弃不用了,比如 zend studio 的较新版本.
书童小二
2018/09/03
1.9K0
用栈判断是否匹配
写代码的时候用到的括号都是成双成对的出现,并且大小也相同。在集成编辑环境中,IDE就会为我们自己动检查括号是否匹配。那么为了避免在报错,如何判断是否有无括号不匹配?
算法与编程之美
2023/08/22
1800
用栈判断是否匹配
因子分解和枚举(一)
今天有难题,所以我分了俩个来写,第一篇水题,发车了…… 返回n的第k个质数 题目中有一个说是排序,但是你for循环后已经是排好序的了,所以说很水的一题,不要相的太难了,请彦祖们看代码
秋名山码神
2022/12/13
1600
PHP正则表达式和字符串匹配
正则表达式是一种可以用来匹配字符串的模式。在PHP中,可以使用preg_match()函数来使用正则表达式进行匹配。preg_match()函数接受两个参数,第一个参数是正则表达式,第二个参数是要匹配的字符串。它返回匹配成功的次数,如果匹配失败则返回0。
堕落飞鸟
2023/04/27
1.3K0
SpringBoot正匹配和负匹配
在Spring框架的自动配置中,”Positive matches”(正匹配)和”Negative matches”(负匹配)是用于条件化配置的概念。
酒楼
2023/06/20
8470
用Docker快速实现SAPT能量分解分析
现在有了更方便的技术,叫做Docker。简而言之,Docker技术是将应用封装成一个包,封装的时候把应用需要的环境也包进来了。这个打好的包被称为镜像(image),基于镜像可以开启一个容器(container),容器与操作系统底层直接交互并且可以执行。有个这个技术,我们就可以拿过来容器直接用,免去了编译、链接库等等的劳顿。重要的是能快速出结果。
用户7592569
2020/07/27
8080
用Docker快速实现SAPT能量分解分析
PHP正则匹配日期和时间(时间戳转换)的实例代码
php需要一定的时间格式才能转换成时间戳(表示从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数),这就要用到php正则判断,以下是代码:
超级小可爱
2023/02/20
2.4K0
PHP正则表达式和字符串匹配示例
除了正则表达式之外,PHP还提供了一些字符串匹配函数。这些函数可以用于查找字符串中是否包含某个子串,或者从字符串中提取特定的子串。
堕落飞鸟
2023/04/27
1K0
linux awk精确匹配和模糊匹配
➜ ~ cat a 123 456 222 3312 ➜ ~ awk '/12/' a 123 3312 ➜ ~ awk '$0 ~ /12/' a 123 3312 ➜ ~ awk '$0 == "123"' a 123
葫芦
2019/04/17
10.7K0
数据结构用栈来判断括号匹配问题——Java
//判断括号匹配问题 public class Bracket_matching { //这是一个main方法,是程序的入口: public static void main(String[] args) { String st = "()()()"; //打印 System.out.println(Brackets(st)); } public static boolean Brackets(String str) {
楠羽
2022/11/18
2940
php去重后重新排键值
因为我们已经移除了一些元素,因此数组看起来不是正常的序列。比如我们可能会得到:array(0=>’A’,2=>’B’,5=>’C’);。在某些情况下,这不是一个问题,但是如果你需要数组的键值保持数字的序列,你可以使用一到两种方法解决键值乱序的问题。
黄啊码
2020/05/29
1.8K0
译文|用大数据重新定义客户忠诚度系统!
从以奖励为基础的尝试中建立真实的客户关系 一个忠诚度系统不应当是关于积分、奖励或地位的。虽然这些福利可以吸引消费者,但它们不能培养起忠诚度。这些系统的重点应当是,收集大量数据以便用于构建既有利于消费者又有利于品牌的关系。 在这里“有用”非常关键——因为消费者其实并不真正在乎企业是否保持数据简洁并且具有相关性。每个人在这一点或者其他某一点上可能在一项关于忠诚度的注册表上对他们的年龄撒谎,这已经不是什么秘密了。或选择不回答调查问题,故意或者无意地提供了不正确的数据,或以他们永不检查的、垃圾邮件地址作为联系方式。
CDA数据分析师
2018/02/23
7050
重新思考数据输入
在目前的产品交互中,输入数据然后程序或者产品对数据进行验证是非常常见的需求,而产品进行验证的目的性也很明确,就是为了避免脏数据进入数据库。但是从产品交互本身来讲,产品是为了让用户更加准确的、简单的使用一个功能,而不是在出错或者用户目的很明确的时候告诉他输入错误了。
RobinsonZhang
2018/10/08
6810
老旧话题:重新看看PHP的session
这基本上算是个老旧的话题了,几乎所有phper在第一次面试的时候都会被问到关于session的问题,如果不出意外,往往是如下三板斧:
老李秀
2019/11/14
1.1K0
老旧话题:重新看看PHP的session

相似问题

用括号分解PHP

20

用php在jquery中分解

10

用魔术方法__call php分解args

13

php用数字分解分隔符?

30

用所有数据重新加载php

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文