好的,所以我无法找到问题的解决方案.基本上,我想要完成的是从过去的一个月开始,总计过去12个月的注册数量.

首先,因为我无法保证每个月都有回报,所以我构建了一个数组并用我的查询结果填充它.我能够提取所需的所有数据,但是我无法按照您的意愿对其进行“排序”.

我希望能够以这种方式显示它,例如:

它目前是10月,所以月份将如下列出:

2014年11月,2014年12月,2015年1月,2015年2月,2015年3月,… 2015年10月.

使用这个数组

$months = array(

'1'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'2'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'3'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'4'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'5'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'6'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'7'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'8'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'9'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'10'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'11'=>array('TOTAL'=>0, 'YEAR'=>NULL),

'12'=>array('TOTAL'=>0, 'YEAR'=>NULL)

);

并用我得到的结果填充它:

key: 1 (January) total: 17 year: 2015

key: 2 (February) total: 20 year: 2015

key: 3 (March) total: 23 year: 2015

key: 4 (April) total: 29 year: 2015

key: 5 (May) total: 26 year: 2015

key: 6 (June) total: 26 year: 2015

key: 7 (July) total: 26 year: 2015

key: 8 (August) total: 24 year: 2015

key: 9 (September) total: 22 year: 2015

key: 10 (October) total: 24 year: 2015

key: 11 (November) total: 30 year: 2014

key: 12 (December) total: 42 year: 2014

这是查询/循环

$query = "SELECT MONTH(DATE_ADDED) as MONTH_NUMBER, MONTHNAME(DATE_ADDED) as MONTH_NAME, COUNT(*) as TOTAL_REGISTRATIONS, YEAR(DATE_ADDED) AS YEAR FROM MEMBERS WHERE DATE_ADDED >= (CURDATE() - INTERVAL (DAY(CURDATE()) - 1) DAY) - INTERVAL 11 MONTH GROUP BY MONTH(DATE_ADDED) ORDER BY DATE_ADDED ASC";

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_assoc($result)){

$months[$row['MONTH_NUMBER']]['NAME'] = $row['MONTH_NAME'];

$months[$row['MONTH_NUMBER']]['TOTAL'] = $row['TOTAL_REGISTRATIONS'];

$months[$row['MONTH_NUMBER']]['YEAR'] = $row['YEAR'];

$months[$row['MONTH_NUMBER']]['MONTH_NUM'] = $row['MONTH_NUMBER'];

}

foreach($months as $key=>$data){

echo 'key: '.$key. ' ('.$data['NAME'].') total: '.$data['TOTAL'].' year: '.$data['YEAR'].'
';

}

exit;

编辑:到目前为止,我已经能够做到这一点:

key: 12 (December) total: 42 year: 2014

key: 11 (November) total: 30 year: 2014

key: 10 (October) total: 24 year: 2015

key: 9 (September) total: 22 year: 2015

key: 8 (August) total: 24 year: 2015

key: 7 (July) total: 26 year: 2015

key: 6 (June) total: 26 year: 2015

key: 5 (May) total: 26 year: 2015

key: 4 (April) total: 29 year: 2015

key: 3 (March) total: 23 year: 2015

key: 2 (February) total: 20 year: 2015

key: 1 (January) total: 17 year: 2015

使用此代码:

function sortArray(array $a, array $b) {

if($a['YEAR'] <= $b['YEAR'] && $a['MONTH_NUM'] < $b['MONTH_NUM']){

return 1;

}elseif($a['YEAR'] <= $b['YEAR'] && $a['MONTH_NUM'] > $b['MONTH_NUM']){

return -1;

}elseif($a['YEAR'] >= $b['YEAR'] && $a['MONTH_NUM'] > $b['MONTH_NUM']){

return -1;

}elseif($a['YEAR'] >= $b['YEAR'] && $a['MONTH_NUM'] < $b['MONTH_NUM']){

return 1;

} else {

return 0;

}

}

// Sort

uasort($months, 'sortArray');

编辑:您可以看到它按年份排序,但以错误的方式列出月份.

编辑:所需的输出

key: 11 (November) total: 00 year: 2014

key: 12 (December) total: 00 year: 2014

key: 1 (January) total: 00 year: 2015

key: 2 (February) total: 00 year: 2015

key: 3 (March) total: 00 year: 2015

key: 4 (April) total: 00 year: 2015

key: 5 (May) total: 00 year: 2015

key: 6 (June) total: 00 year: 2015

key: 7 (July) total: 00 year: 2015

key: 8 (August) total: 00 year: 2015

key: 9 (September) total: 00 year: 2015

key: 10 (October) total: 00 year: 2015

最后,我将在一个条形图中显示这些,显示去年的每月总数.

我不知道这是否是最好的方法,欢迎任何建议.

php排序条件两个,php – 在两个条件下排序数组相关推荐

  1. 两万字搞定《数据结构》 八大排序 必读(建议收藏)

    前言:本章将介绍常见八大排序包括如下直接插入排序.希尔排序.选择排序.堆排序.冒泡排序.快排.归并排序以及计数排序(基数排序和桶排序面试基本不涉及,本文忽略了,有兴趣的读者可以自行补充),本章内容是重 ...

  2. 两平面平行但不重合的条件是_____「初一数学」平行线的判定与性质的综合应用...

    平行线的判定和性质的知识是初中几何的基础内容,这部分知识掌握的好坏关乎整个初中几何知识的成败,所以同学们一定要打好这一基础关,为后续的学习铺平康庄大道. ☞平行线的判定,初一常用的有六种方法:①定义法 ...

  3. 已有a,b两个链表,每个链表中的结点包括学号、成绩。要求把两个链表合并,按学号 升序排序

    /*已有a,b两个链表,每个链表中的结点包括学号.成绩.要求把两个链表合并,按学号 升序排序*/#include <stdio.h> #include <stdlib.h> t ...

  4. 两化融合贯标申报条件

    一.什么是两化融合贯标 在信息技术不断发展的环境下,企业围绕其战略目标,将信息化作为企业的内生发展要素,夯实工业化基础,推进数据.技术.业务流程.组织结构的互动创新和持续优化,充分挖掘资源配置潜力,不 ...

  5. 第四周作业——统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现)

    统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和sed两种方法分别实现) 方法一:grep实现 grep -o "\<[[:alpha:]] ...

  6. Unity两个物体发生碰撞的条件

    好吧,网上好多资料显示发生碰撞条件如下: 两个对象都有Collider组件且至少一个有Rigidbody组件 其中至少一个物体(必须运动的)必须带有碰撞器(collider)+刚体(Rigidbody ...

  7. 两化融合贯标申报条件-制造

    两化融合贯标申报条件又是什么呢? (一)申报"互联网+制造"类项目的条件: 1.项目单位为在深圳注册的法人企业 2.项目单位属信息化应用企业: 3.项目单位属制造业企业,或属重点行 ...

  8. 汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序;2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出

    汇编语言#编写两个子程序,分别实现:1)使用选择法排序,按成绩从高到低的进行排序:2)分别统计学生某门课程成绩中各分数段的成绩的人数,并输出 选择排序(Selection sort)是一种简单直观的排 ...

  9. pandas中根据两列 或 多列进行条件对比,生成新列【三种方法】

    使用目的: 两列数量对比,收货比期望多,就是标记数量满足,否则就数量不满足 如果数量满足.日期满足,那么总体就标记满足,有一个不满足就总体标记不满足 第一种: .loc赋值 # 这里是先创建一个空列, ...

  10. java 两个list排序_java实现两个不同list对象合并后并排序

    工作上遇到一个要求两个不同list对象合并后并排序 1.问题描述 从数据库中查询两张表的当天数据,并对这两张表的数据,进行合并,然后根据时间排序. 2.思路 从数据库中查询到的数据放到各自list中, ...

最新文章

  1. 《从问题到程序:用Python学编程和计算》——第3章 基本编程技术 3.1 循环程序设计...
  2. EMIF的两个接口EMIFA和EMIFB分析与比较
  3. Rails 定时任务——whenever实现周期性任务
  4. SPOJ 3267: DQUERY 树状数组,离线算法
  5. CS144 lab2 笔记
  6. 给地球上的22.8万种植物建立图像索引
  7. 算法总结之 在单链表中删除指定值的节点
  8. 计算机科学与技术专业分多少学科,计算机科学与技术专业,电子科学与技术有什么分别?...
  9. sqlisnull mysql_SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数
  10. WPF-005:关于使用PageFunction导航中KeepAlive的使用
  11. python画科赫雪花
  12. SWT中嵌入Swing的JTextFeild却不能编辑
  13. Haskell生成数字的LED字符形式
  14. keras 中文文档学习一
  15. python(1)汇率换算
  16. 大数据BI可视化应用介绍
  17. 「大学必读」计算机专业学生一定要学好哪些课程?
  18. 软件加入使用时间_【安卓】换了这么多影视软件,还是这个老牌站点最靠谱
  19. 【过程挖掘算法4】Alpha Miner及其系列算法
  20. 大一新生必看,自学必看,里昂详解数据结构之线性表

热门文章

  1. xul中的快捷键及命令响应
  2. Python 命令行非阻塞输入
  3. 如何让Log4net日志文件按每月归成一个文件夹,StaticLogFileName参数的用法
  4. MAGENTO与性能优化
  5. tomcat异常[0]--java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV
  6. WebAPI Get
  7. laravel5集成支付宝alipay扫码支付流程(Laravel 支付解决方案)
  8. 【报告分享】2022中国女性内衣行业研究报告.pdf(附下载链接)
  9. 【重磅分享】从零到一搭建推荐系统指南白皮书.pdf(附48页下载链接)
  10. 自然语言处理之TF-IDF