遇到了一个问题,php数组的
这两天整一个数据,捯饬了好久。。。
需求是这样的
<?php
$a = array ();
$a[] = ['week'=>'1','day'=>'1'];
$a[] = ['week'=>'1','day'=>'2'];
$a[] = ['week'=>'1','day'=>'4'];
$a[] = ['week'=>'2','day'=>'1'];
$a[] = ['week'=>'2','day'=>'3'];
$a[] = ['week'=>'2','day'=>'5'];
// var_dump($a);
//期望输出
//$b =['1'=>'1,2,4'],['2'=>'1,3,5']
想了好多php自带的数组函数,都没有成功,后来去找大神了。
思路1:
因为数据是从数据库直接查出来的

想要的结果样式其实是可以通过SQL实现:
SELECT week,GROUP_CONCAT(`day`) as day
FROM `user_progress`
where openid ='oC_c95aBUFxnsulu6AWiS9iivtkw' && level=1
GROUP BY `week`;
结果:

这个MYSQL函数可以学习一下:GROUP_CONCAT
思路2:通过php处理实现
$a = array ();
$b = array ();
$a[] = ['week'=>'1','day'=>'1'];
$a[] = ['week'=>'1','day'=>'2'];
$a[] = ['week'=>'1','day'=>'4'];
$a[] = ['week'=>'2','day'=>'1'];
$a[] = ['week'=>'2','day'=>'3'];
$a[] = ['week'=>'2','day'=>'5'];
// var_dump($a);
foreach($a as $value){
$b[$value['week']][] = $value['day'];
}
var_dump($b);
结果

文章来源:刘俊涛的博客
欢迎关注,有问题一起学习欢迎留言、评论。
遇到了一个问题,php数组的的更多相关文章
- ytu 1050:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换(水题)
1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 154 Solved: 112[ ...
- [CareerCup] 13.10 Allocate a 2D Array 分配一个二维数组
13.10 Write a function in C called my2DAlloc which allocates a two-dimensional array. Minimize the n ...
- new一个二维数组
.定义一个二维数组 char **array1 array1 = new char *[x]; for(i=0;i<x;++i) array1[i] = new char[y]; ...用的时候 ...
- 写入数据到Plist文件中时,第一次要创建一个空的数组,否则写入文件失败
#pragma mark - 保存数据到本地Plist文件中 - (void)saveValidateCountWithDate:(NSString *)date count:(NSString *) ...
- [原]Java面试题-输入一个整型数组,找出最大值、最小值,并交换。
[Date]2013-09-19 [Author]wintys (wintys@gmail.com) http://wintys.cnblogs.com [Content]: 1.面试题 输入一个整型 ...
- c语言题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点
//题目:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小.也可能没有鞍点. // #include "stdio.h" #include <stdli ...
- 如何判断一个变量是数组Array类型
在很多时候,我们都需要对一个变量进行数组类型的判断.JavaScript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助. JavaScript中检测对象 ...
- php中向前台js中传送一个二维数组
在php中向前台js中传送一个二维数组,并在前台js接收获取其中值的全过程方法: (1),方法说明:现在后台将数组发送到前台 echo json_encode($result); 然后再在js页面中的 ...
- JAVA生成一个二维数组,使中间元素不与相邻的9个元素相等,并限制每一个元素的个数
JAVA生成一个二维数组,使中间元素不与相邻的9个元素相等,并限制每一个元素的个数 示例如下 至少需要九个元素:"A","B","C",&q ...
- Jsの练习-将 数组中值为0 的去掉,不为0的存入一个新的数组
要求:将 数组中值为0 的去掉,不为0的存入一个新的数组 代码如下: <!DOCTYPE html> <html lang="en"> <head&g ...
随机推荐
- Map按照数值进行排序
public static Map<String, Integer> sortMapByValue(Map<String, Integer> oriMap) { if (ori ...
- bzoj 1012 BST 支持插入,区间最大
水... /************************************************************** Problem: 1012 User: idy002 Lang ...
- Codeforces Round #346 (Div. 2) G. Fence Divercity dp
G. Fence Divercity 题目连接: http://www.codeforces.com/contest/659/problem/G Description Long ago, Vasil ...
- hdu 5211 Mutiple 数学
Mutiple Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5211 ...
- java如何禁掉反射
SecurityManager 有一个checkMemberAccess这个方法可以阻止利用反射:如: SecurityManager sm = new SecurityManager(); sm.c ...
- jQuery Mobile 页面事件
jQuery Mobile 页面事件 在 jQuery Mobile 中与页面打交道的事件被分为四类: Page Initialization - 在页面创建前,当页面创建时,以及在页面初始化之后 P ...
- char *p 与char p[]
char *p=a和char*p=&a 前者p是一个指针变量后者p是一个char型变量 char *p = "123"; 为全局数组,放在常量区,而非普通数据段(静态存储区 ...
- 《C# to IL》第一章 IL入门
我们用C#.VB.NET语言编写的代码最终都会被编译成程序集或IL.因此用VB.NET编写的代码可以在C#中修改,随后在COBOL中使用.因此,理解IL是非常有必要的. 一旦熟悉了IL,理解.NET技 ...
- timeago.js-时间显示插件
注意事项: 1. 时间格式 = “2018-03-02 17:13:00”时,动态获取的时间无法通过 拼接字符串的方法 添加到 dom元素的 datetime属性上,结果为 <div class ...
- mui 页面滚动解决方案
默认情况下mui 页面不能滚动,以下为解决方案: 1. mui('.mui-scroll-wrapper').scroll({ deceleration: 0.0005 //flick 减速系数,系 ...