收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 2724|回复: 5

[php] 数据对比数组使用求方法思路[已解决]

[复制链接]
发表于 2009-12-5 20:48:44 | 显示全部楼层 |阅读模式
最近在做一个健康对比系统.  例一个会员,做过三年体检, 07 08 09三年. 三年都有一个唯一的会员号.我假设是 1 2 3
检查数据表:
会员号  项目   结果     科室ID
1         心脏   跳的     2
1        四肢   骨折了      1
1       ....           .....         ...
2         心脏   不跳了   1
.....
3        ....          ......        4



上面是基本数据表. 我现在要达到的效果是输出以下样式
xxxx会员不正常结果对比
项目   第一年   第二年   第三年
心脏    跳的    不跳了   又跳了
四肢    (空)        正常      (空:今年没有这个项目)
......


我现在是先根据三个会员号 123 从结果数据表里 取出各自不正常的结果并存到数组a(i)里  
a(1)  =(心脏,四肢....)
a(2) = (心脏,眼睛...)
a(3)=(肚子,脑袋...)

然后合并数组成 b[0]
使用二次array_flip(b[]) 去除重复项目

再使用b[]  的foreach循环
foreach(b[] as bb){
     循环三个会员号 {
         $sql = "select * from 数据表 where  项目=bb and 会员号 =会员号 ";
        输出一项对比 $result->项目.$result->结果;
    }
}


我的难题出来了. 这样的输出没有顺序没有科室.  如果把科室ID 号也像 a[1]一样存入数组 aa[1]  ,那么在a[]数组合并到b[]再去除重复后,对应不起来了!!!
哪各位高人有没有其他好的思路哈

[[i] 本帖最后由 waichun 于 2009-12-15 13:19 编辑 ]
发表于 2009-12-6 09:50:37 | 显示全部楼层
你给一个数组出来吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-6 11:01:06 | 显示全部楼层
好的我简单化一下
数据全存入数组

a[i]    \\ i 范围1-3    会员a[1]里有N个阳性结果,由 " | " 分隔,会员a[2]  会员a[3]同样
b[i]    \\ i 范围同上  b[1] 里存的是与a[1]对应阳性结果的ID号,由 " | "分隔, b[2] b[3] 同样  

先array_merge数组a[i] 到aa[],  然后explode到 aaa[]  //aaa[] 是会员三年所有阳性结果的集合,里面有重复的项目
再array_merge数组b[i] 到bb[], 然后explode到 bbb[]  //bbb[]对应aaa[]

我现在需要去掉aaa[]里的重复项目,二次array_flip(aaa[]) 这样得到的是不重复的阳性项目,但与bbb[]对不起来了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-6 11:29:12 | 显示全部楼层
数字化一下
aaa[] = array(心脏,B超,心脏,四肢,肝,心,四肢) //这里有重复项目名
bbb[] = array(1,2,3,5,6,8,11) //这里是项目对应的各自id号

现在需要对aaa[]去重复 只要留一个,留前后哪一个不要紧,都可以. 关键是去掉重复后,bbb[]的id号要与之还是对应
回复 支持 反对

使用道具 举报

发表于 2009-12-11 10:58:02 | 显示全部楼层
这种?

  1. <?php
  2. $aaa = array('心脏','B超','心脏','四肢','肝','心','四肢');
  3. $bbb = array(1,2,3,5,6,8,11);
  4. $newa = array();
  5. foreach($aaa as $key => $value)
  6. {
  7.     if(in_array($value, $newa))
  8.     {
  9.         unset($bbb[$key]);
  10.         continue;
  11.     }
  12.     $newa[] = $value;
  13. }
  14. print_r($newa);
  15. print_r($bbb);
  16. ?>
复制代码


为什么数组不弄成 key => value 这种?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-12-15 13:18:55 | 显示全部楼层
Thank you very much!!!!!!  看来我是基本功不扎实!! 小技巧解决大问题了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( 湘ICP备12001430号 )  

GMT+8, 2020-9-23 22:19 , Processed in 0.110075 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表