扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
$arr = array(
我们提供的服务有:成都网站制作、做网站、微信公众号开发、网站优化、网站认证、临武ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的临武网站制作公司
"圆柱加" = 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代码是一样的。
你说的这个问题采用php常用的分页技术就能够实现了。
?php //显示所有表的信息
//1.连接数据库
$conn=ql_connect('localhost','root','1234abcd') or die('连接数据库错误'.mysql_error());
//2.选择数据库
mysql_select_db('empManage');
//3.选择字符集
mysql_query('set names utf8');
//4.发送sql语句并得到结果进行处理
//4.1分页
$pageSize=3;//每页显示多少条记录
$rowCount=0;//共有多少条记录
$pageNow=1;//希望显示第几页
$pageCount=0;//一共有多少页
//4.15根据分页链接来修改$pageNow的值
if(!empty($_GET['pageNow'])){
$pageNow=$_GET['pageNow'];
}
$sql='select count(id) fr1)){$rowCount=$row[0];}
//4.12计算共有多少页
$pageCount=ceil($rowCount/$pageSize);
$pageStart=($pageNow-1)*$pageSize;
//4.13发送带有分页的sql结果
$sql="select * from emp limit $pageStart,$pageSize";
$res2=mysql_query($sql,$conn) or die('无法获取结果集'.mysql_error());
//echo输出表格
echo 'table border=1';"trthid/ththname/ththgrade/ththemail/ththsalary/ththa href='#'删除用户/a/ththa href='#'修改用户/a/th/tr";while($row=mysql_fetch_assoc($res2)){echo "trtd{$row['id']}/tdtd{$row['name']}/tdtd{$row['grade']}/tdtd{$row['email']}/tdtd{$row['salary']}/tdtda href='#'删除用户/a/tdtda href='#'修改用户/a/td/tr";}echo '/table';
//4.14打印出页码的超链接
for($i=1;$i=$pageCount;$i++){
echo "a href='?pageNow=$i'$i/a ";
}
//5.释放资源,关闭连接
mysql_free_result($res2);
mysql_close($conn);
?
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"
}
}
}
$data1 = array("a2"-"类一","V4"-“类二”);
$data2 = array();
foreach($data1 as $key=$value) {
$data2[$value] = $data2[$value].' '.$key;
}
这个答案是错误的!请及时认清。我想问一下答主你是这么想的?
请查考下面的这些PHP函数
统计:
array_count_values 统计数组中所有的值出现的次数
array_product 计算数组中所有值的乘积
array_sum 计算数组中所有值的和
count 计算数组中的单元数目或对象中的属性个数
sizeof count() 的别名
搜索:
array_key_exists 检查给定的键名或索引是否存在于数组中
array_search 在数组中搜索给定的值,如果成功则返回相应的键名
in_array 检查数组中是否存在某个值
排序:
array_multisort 对多个数组或多维数组进行排序
arsort 对数组进行逆向排序并保持索引关系
asort 对数组进行排序并保持索引关系
krsort 对数组按照键名逆向排序
ksort 对数组按照键名排序
natcasesort 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort 用“自然排序”算法对数组排序
rsort 对数组逆向排序
sort 对数组排序
uasort 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort 使用用户自定义的比较函数对数组中的键名进行排序
usort 使用用户自定义的比较函数对数组中的值进行排序
shuffle 将数组打乱
交集:
array_intersect_assoc 带索引检查计算数组的交集
array_intersect_key 使用键名比较计算数组的交集
array_intersect_uassoc 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey 用回调函数比较键名来计算数组的交集
array_intersect 计算数组的交集
array_key_exists 用回调函数比较键名来计算数组的交集
array_uintersect_assoc 带索引检查计算数组的交集,用回调函数比较数据
array_uintersect 计算数组的交集,用回调函数比较数据
差集:
array_udiff_assoc 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff 用回调函数比较数据来计算数组的差集
array_diff_assoc 带索引检查计算数组的差集
array_diff_key 使用键名比较计算数组的差集
array_diff_uassoc 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey 用回调函数对键名比较计算数组的差集
array_diff 计算数组的差集
获取数组的部分内容:
array_chunk 将一个数组分割成多个
array_filter 用回调函数过滤数组中的单元
array_keys 返回数组中所有的键名
array_slice 从数组中取出一段
array_values 返回数组中所有的值
加工出所需数组:
array_combine 创建一个数组,用一个数组的值作为其键名,另一个数组的值作 为其值
array_fill 用给定的值填充数组
array_flip 交换数组中的键和值
array_map 将回调函数作用到给定数组的单元上
array_merge_recursive 递归地合并一个或多个数组
array_merge 合并一个或多个数组
array_pad 用值将数组填补到指定长度
array_push 将一个或多个单元压入数组的末尾(入栈)
array_reverse 返回一个单元顺序相反的数组
array_shift 将数组开头的单元移出数组
array_splice 把数组中的一部分去掉并用其它值取代
array_unique 移除数组中重复的值
array_unshift 在数组开头插入一个或多个单元
array_walk_recursive 对数组中的每个成员递归地应用用户函数
array_walk 对数组中的每个成员应用用户函数
compact 建立一个数组,包括变量名和它们的值
range 建立一个包含指定范围单元的数组
单元:
array_pop 将数组最后一个单元弹出(出栈)
array_rand 从数组中随机取出一个或多个单元
current 返回数组中的当前单元
pos current() 的别名
each 返回数组中当前的键/值对并将数组指针向前移动一步
end 将数组的内部指针指向最后一个单元
key 返回数组中当前单元的键名
list 把数组中的值赋给一些变量
next 将数组中的内部指针向前移动一位
prev 将数组的内部指针倒回一位
reset 将数组的内部指针指向第一个单元
其他:
array_reduce 用回调函数迭代地将数组简化为单一的值
extract 从数组中将变量导入到当前的符号表
array 新建一个数组
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流