php数组相同数据分组 php数组相加组合数据

php数据数组重新分组

$arr = array(

成都创新互联公司是一家专注于网站设计制作、成都网站设计与策划设计,巴马网站建设哪家好?成都创新互联公司做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:巴马等地区。巴马做网站价格咨询:18982081108

"圆柱加" = 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 反的也没问题吧?

写这么多你都不给我采纳一下。。。

php 数组按相同元素拆分

是不同元素之间都要换行吗?

我的思路是:从第一个开始,对其他元素进行扫描,找到一样的就 输出,同时删掉找出的这个元素,。。。。比较完了 换行

然后下一个元素

php数组如何根据相同值再分组

这个答案是错误的!请及时认清。我想问一下答主你是这么想的?

请查考下面的这些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 新建一个数组

如何实现PHP根据数组的值进行分组

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"

}

}

}

php中同一数组中怎么区分相同元素

你可以试试把要比较的数组排序后直接进行比较。

排序是为了让array('甲', '乙')和array('乙', '甲')都变成array('甲', '乙'),如果配方原料的顺序重要的话就不用排序,之后直接用===或者其它函数比较就行了。

?php

$mixitem = array('甲', '甲', '甲');

$mixinfo = array( 

array('stuff' = array('甲', '乙', '丙'), 'result' = array('丁')), 

array('stuff' = array('甲', '甲', '甲'), 'result' = array('丁')), 

);

$mixflag = false;

sort($mixitem);

foreach($mixinfo as $e) {

$arr = $e['stuff'];

sort($arr);

if ($arr === $mixitem) {

$mixflag = true;

break;

}

}

echo $mixflag ? 'true' : 'false';

以上代码输出true


网站标题:php数组相同数据分组 php数组相加组合数据
文章出自:http://pwwzsj.com/article/hgddgc.html