首页 > 后端开发 > php教程 > 这样的二维数组合并并去掉重复值,该如何做

这样的二维数组合并并去掉重复值,该如何做

WBOY
发布: 2016-06-13 13:45:15
原创
808 人浏览过

这样的二维数组合并并去掉重复值,该怎么做
这样的二维数组合并并去掉重复值(attr_id,attr_name,attr_value三个字段都相同的则保留一个去除一个)

PHP code

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

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

-->

Array

(

    [0] => Array

        (

            [attr_id] => 16950

            [attr_name] => 台式机CPU品牌

            [attr_value] => AMD

 

        )

 

    [1] => Array

        (

            [attr_id] => 16951

            [attr_name] => 台式机操作系统

            [attr_value] => Linux

 

        )

 

)

 

Array

(

    [0] => Array

        (

            [attr_id] => 16955

            [attr_name] => 售后服务

            [attr_value] => 一年

        )

 

)

登录后复制


------解决方案--------------------
function array_multi_unique($ar) {
$ar = array_map('serialize', $ar);
$ar = array_unique($ar);
return array_map('unserialize', $ar);
}

print_r( array_multi_unique($a) );
------解决方案--------------------
在唠叨老大的基础上改改
PHP code

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

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

<?php $new = Array

(

    '0' => Array

        (

            'attr_id' => '16950',

            'attr_name' => '台式机CPU品牌',

            'attr_value' => 'AMD',

            'attr_type' => 1,

            'belong' => 'goods_sku'

        ),

    '1' => Array

        (

            'attr_id' => '16951',

            'attr_name' => '台式机操作系统',

            'attr_value' => 'Linux',

            'attr_type' => 2,

            'belong' => 'goods_sku'

        ),

    '2' => Array

        (

            'attr_id' => '16955',

            'attr_name' => '售后服务',

            'attr_value' => '一年',

            'attr_type' => 2,

            'belong' => 'goods_sku'

        ),

    '3' => Array

        (

            'attr_id' => '16950',

            'attr_name' => '台式机CPU品牌',

            'attr_value' => 'AMD',

            'attr_type' => 1,

            'belong' => 'goods'

        )

);

 

// 老大的基础上改改

function array_multi_unique($ar, $filter=array()) {

 

    if(!empty($filter)) {

        $_v = array_fill_keys($filter, ' ');

        $_ar = array();

        foreach($ar as $k => $v) {

            $_ar[$k] = array_intersect_key($v, $_v);

        }

    } else {

        $_ar = $ar;

    }

 

    $_ar = array_map('serialize', $_ar);

    $_ar = array_unique($_ar);

    $_ar = array_map('unserialize', $_ar);

 

    if(!empty($filter)) {       

        return array_intersect_key($ar, $_ar);

    } else {

        return $_ar;

    }

}

 

print_r(array_multi_unique($new, array('attr_id', 'attr_name', 'attr_value'))); <div class="clear">

                  

               

               

         

            </div>

登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板