十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
PHP根据数组的值分组,php array中没有自带这个函数但是很常用
创新互联专注于湄潭网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供湄潭营销型网站建设,湄潭网站制作、湄潭网页设计、湄潭网站官网定制、微信平台小程序开发服务,打造湄潭网络公司原创品牌,更为您提供湄潭网站排名全网营销落地服务。
代码:
$_array = array(
array(1,11,'2016-05-18'),
array(2,11,'2016-05-18'),
array(3,22,'2016-05-18'),
array(4,22,'2016-05-18'),
array(5,33,'2016-05-19'),
array(6,33,'2016-05-19'),
array(7,44,'2016-05-19'),
array(8,44,'2016-05-19'),
array(9,55,'2016-05-20'),
array(10,55,'2016-05-20'),
);
var_dump(array_val_chunk($_array));
function array_val_chunk($array){
$result = array();
foreach ($array as $key = $value) {
$result[$value[1].$value[2]][] = $value;
}
$ret = array();
//这里把简直转成了数字的,方便同意处理
foreach ($result as $key = $value) {
array_push($ret, $value);
}
return $ret;
}
运行结果如下:
array(5) {
[0]=
array(2) {
[0]=
array(3) {
[0]=
int(1)
[1]=
int(11)
[2]=
string(10) "2016-05-18"
}
[1]=
array(3) {
[0]=
int(2)
[1]=
int(11)
[2]=
string(10) "2016-05-18"
}
}
[1]=
array(2) {
[0]=
array(3) {
[0]=
int(3)
[1]=
int(22)
[2]=
string(10) "2016-05-18"
}
[1]=
array(3) {
[0]=
int(4)
[1]=
int(22)
[2]=
string(10) "2016-05-18"
}
}
[2]=
array(2) {
[0]=
array(3) {
[0]=
int(5)
[1]=
int(33)
[2]=
string(10) "2016-05-19"
}
[1]=
array(3) {
[0]=
int(6)
[1]=
int(33)
[2]=
string(10) "2016-05-19"
}
}
[3]=
array(2) {
[0]=
array(3) {
[0]=
int(7)
[1]=
int(44)
[2]=
string(10) "2016-05-19"
}
[1]=
array(3) {
[0]=
int(8)
[1]=
int(44)
[2]=
string(10) "2016-05-19"
}
}
[4]=
array(2) {
[0]=
array(3) {
[0]=
int(9)
[1]=
int(55)
[2]=
string(10) "2016-05-20"
}
[1]=
array(3) {
[0]=
int(10)
[1]=
int(55)
[2]=
string(10) "2016-05-20"
}
}
}
$arr = array(
"圆柱加" = array(
"data" = array(
array(
"product_id" = 36,
"style_id" = 102,
"style_name" = "圆柱架",
"product_sn" = "MMJ000036",
"product_thumb" = "a.jpg"
),
array(
"product_id" = 36,
"style_id" = 102,
"style_name" = "圆柱架",
"product_sn" = "MMJ000036",
"product_thumb" = "a.jpg"
),
)
),
"蝴蝶夹" = array(
"data" = array(
array(
"product_id" = 36,
"style_id" = 102,
"style_name" = "蝴蝶夹",
"product_sn" = "MMJ000036",
"product_thumb" = "a.jpg"
),
array(
"product_id" = 36,
"style_id" = 102,
"style_name" = "蝴蝶夹",
"product_sn" = "MMJ000036",
"product_thumb" = "a.jpg"
),
)
)
);
$count = 0;
foreach($arr as $k=$v){
$arr[$k]['group_name'] = $k;
$arr[$count] = $arr[$k];
unset($arr[$k]);
$count++;
}
echo json_encode($arr);
这样输出出来格式是"data":[{}],"group_name": "XXX"
反正是json 反的也没问题吧?
写这么多你都不给我采纳一下。。。
分组查询原理都是SQL的分组查询,THINKPHP中只是用到他自己的一些自定义的方法!比如 join()、group()、having()方法等,实际对应的也是SQL里的这些关键字!
例如本次需求是要按照cid进行分组,按照通常的做法是 SELECT * FROM 表名 GROUP BY cid,这样就能按照cid进行分组筛选!然后使用THINKPHP的时候则使用 M('表名')-group('cid')-select(); 实际生成的语句和原始SQL代码是一样的。