
正文
php数组值重复数据 php找出数组的重复值
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
php取出多维数组重复的值
$arr = array(
array(
array(
"stocknotifyId" = 1,
"sku" = '13809_BL_37',
"email" = 'huang@aaa.com'
),
array(
"stocknotifyId" = 3,
"sku" = '13809_BL_37',
"email" = 'hrheve@dfwef.com'
),
array(
"stocknotifyId" = 5,
"sku" = '13809_BL_37',
"email" = 'dfsfs@dfsf.com'
)
),
array(
array(
"stocknotifyId" = 2,
"sku" = '13809_B_39',
"email" = 'huang@aaa.com'
)
),
array(
array(
"stocknotifyId" = 4,
"sku" = '13809_BL_39',
"email" ='hrheve@dfwef.com'
)
)
);
$re = array();
foreach($arr as $a) {
foreach ($a as $v) {
$tmp_v = $v;
unset($tmp_v['email']);
if(isset($re[$v['email']])) {
$re[$v['email']][] = $tmp_v;
}else{
$re[$v['email']] = array($tmp_v);
}
}
}
print_r($re);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
!-- output --
Array
(
[huang@aaa.com] = Array
(
[0] = Array
(
[stocknotifyId] = 1
[sku] = 13809_BL_37
)
[1] = Array
(
[stocknotifyId] = 2
[sku] = 13809_B_39
)
)
[hrheve@dfwef.com] = Array
(
[0] = Array
(
[stocknotifyId] = 3
[sku] = 13809_BL_37
)
[1] = Array
(
[stocknotifyId] = 4
[sku] = 13809_BL_39
)
)
[dfsfs@dfsf.com] = Array
(
[0] = Array
(
[stocknotifyId] = 5
[sku] = 13809_BL_37
)
)
)
相关问答
Q1: php获取数组中重复数据的两种方法
( )利用php提供的函数 array_unique和array_diff_assoc来实现
复制代码 代码如下: ?php function FetchRepeatMemberInArray($array) { // 获取去掉重复数据的数组 $unique_arr = array_unique ( $array ); // 获取重复数据的数组 $repeat_arr = array_diff_assoc ( $array $unique_arr ); return $repeat_arr; } // 测试用例 $array = array ( apple iphone miui apple orange orange ); $repeat_arr = FetchRepeatMemberInArray ( $array ); print_r ( $repeat_arr ); ?
( )自己写函数实现这个功能 利用两次for循环
复制代码 代码如下: lishixinzhi/Article/program/PHP/201311/20965
Q2: PHP删除数组中的重复数据
这样php数组值重复数据的话,是有些麻烦啦,你得一项一项去比较才行,你先比较从2到9这几项php数组值重复数据的类型,然后再去比较每一项当中的数目,然后再比较每一项当中每一项的值是不是相同才行,比较相同要用“===”php数组值重复数据,而不是“==”,这一点得注意下;
Q3: php编程: 怎样计算某一值在数组中重复出现的次数?
使用array_count_values函数可以找出数组中相同值出现php数组值重复数据的次数php数组值重复数据,array_count_values用法如下php数组值重复数据:
array_count_values
—
统计数组中所有php数组值重复数据的值出现的次数
array
array_count_values
(
array
$input)
array_count_values()
返回一个数组,该数组用
input
数组中的值作为键名,该值在:input
数组中出现的次数作为值
input:统计这个数组的值
返回值:
返回一个关联数组,用
input数组中的值作为键名,该值在数组中出现的次数作为值。
示例:
?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?
以上例程会输出:
Array
(
[1] = 2
[hello] = 2
[world] = 1
)需要取出哪个值的次数,就在返回的数组中获取对应的key值即可,例如示例中array_count_values($array)['hello']就可以取出数组中hello的个数。
Q4: php 删除数组重复的值
$arr = array(1,2,4,2,0,9,8,5);//定义一个数组。
$arr1 = $arr; //定义另一个数组和上一个数组一样。
//循环第一个数组让后循环第二个数组 用第一个数组的每个值和第二个数组比较如果相同就删除,最后输出第二个数组就行了。
for($i = 0;$icount($arr);$i++){
for($j=$i+1;$jcount($arr);$j++){
if($arr[$i] == $arr[$j])
unset($arr1[$i]);
}
}
echo'pre';
print_r($arr1);
第二 如果允许使用array_uniqe()函数的话,直接array_uniqe(直接写数组名就ok)。
在PHP中可以使用内置函数array_unique()来直接删除重复元素,也可以使用array_flip()函数来间接删除重复元素。
1.array_unique()函数
array_unique()函数可以移除数组中的重复的值,并返回结果数组;当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。
代码示例:
?php$result1 = array("a" = "green", "red", "b" = "green", "blue",
"red");var_dump($result1);$result2 = array_unique($result1);var_dump($result2);?
2.array_flip()函数
array_flip()是反转数组键和值的函数,它有个特性就是如果数组中有二个值是一样的,那么反转后会保留最后一个键和值,利用这个特性我们用他来间接的实现数组的去重。
代码示例:
?phpheader("content-type:text/html;
charset=utf-8");$a = array(1, 5, 2, 5, 1, 3, 2, 4, 5);// 输出原始数组echo "原始数组
:";var_dump($a);// 。
通过使用翻转键和值移除重复值$a = array_flip($a);
// 通过再次翻转键和值来恢复数组元素$a = array_flip($a);// 重新排序数组键$a = array_values($a);// 输出更新后的数组echo "更新数组 :";var_dump($a);?
扩展资料:
在 PHP 中创建数组:
在 PHP 中, array() 函数用于创建数组:
array();
在 PHP 中,有三种数组类型:
索引数组 - 带有数字索引的数组。
关联数组 - 带有指定键的数组。
多维数组 - 包含一个或多个数组的数组。
1、PHP 索引数组
有两种创建索引数组的方法:
索引是自动分配的(索引从 0 开始):
$cars=array("porsche","BMW","Volvo");
或者也可以手动分配索引:
$cars[0]="porsche";
2、遍历索引数组:
如需遍历并输出索引数组的所有值,可以使用 for 循环,就像这样:
实例:
?php
$cars=array("porsche","BMW","Volvo");
$arrlength=count($cars);
for($x=0;$x$arrlength;$x++) {
echo $cars[$x];
echo "br";
}
?
3、多维数组:
将在 PHP 高级教程出现多维数组。
参考资料来源:百度百科-PHP
Q5: php判断数组重复,并把重复的数据相加
遍历一次就搞定了
既然你要把单号相同的加起来,就可以认为单号是唯一的,所以单号可以做key
$sourceArr = array(); // 这里就是你原始数据的数组
$newArr = array(); // 这里是相加后处理过的数组,以单号为key
foreach ($sourceArr as $v) {
if (array_key_exists($v['id'], $newArr)) {
$newArr[$v['id']]['fund'] += $v['fund'];
} else {
$newArr[$v['id']] = $v;
}
}
大概就是这么个意思,不过交易类型、账务类型你可能还要再处理下。
如果最后想得到一个下标从0开始的,非关联数组,再用array_values()函数处理下就OK了
关于php数组值重复数据和php找出数组的重复值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







