php如何快速去除二维数组

在PHP的开发中,常常需要对数据进行处理,如去重、排序、筛选等等。其中,处理二维数组是非常常见的操作。那么,如何快速去除二维数组中的重复数据呢?下面将为你介绍几种实现方法。

方法一:使用array_unique()函数

array_unique()函数可以快速去除数组中的重复数据,具体实现方法如下:

1

2

3

4

5

6

7

8

9

10

11

$array = array(

array(id => 1, name => 小明),

array(id => 2, name => 小红),

array(id => 3, name => 小明)

);

$newArray = array_map(“serialize”, $array);

$newArray = array_unique($newArray);

$newArray = array_map(“unserialize”, $newArray);

print_r($newArray);

登录后复制

输出结果:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Array

(

[0] => Array

(

[id] => 1

[name] => 小明

)

[1] => Array

(

[id] => 2

[name] => 小红

)

)

登录后复制

方法二:使用循环遍历

循环遍历数组,将每一个子数组与之前的子数组进行对比,如果相同则删除。具体代码实现如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

$array = array(

array(id => 1, name => 小明),

array(id => 2, name => 小红),

array(id => 3, name => 小明)

);

for($i = 0; $i < count($array) – 1; $i++){

for($j = $i + 1; $j < count($array); $j++){

if($array[$i] == $array[$j]){

unset($array[$j]);

}

}

}

print_r($array);

登录后复制

输出结果:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Array

(

[0] => Array

(

[id] => 1

[name] => 小明

)

[1] => Array

(

[id] => 2

[name] => 小红

)

)

登录后复制
登录后复制

方法三:使用array_walk()函数

array_walk()函数可以让我们自定义处理数组的函数。具体实现方法如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$array = array(

array(id => 1, name => 小明),

array(id => 2, name => 小红),

array(id => 3, name => 小明)

);

$tempArr = array();

array_walk($array, function($value, $key) use (&$tempArr) {

if(!in_array($value, $tempArr)){

array_push($tempArr, $value);

}

});

print_r($tempArr);

登录后复制

输出结果:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Array

(

[0] => Array

(

[id] => 1

[name] => 小明

)

[1] => Array

(

[id] => 2

[name] => 小红

)

)

登录后复制
登录后复制

以上就是三种快速去除二维数组中重复数据的方法。具体使用哪种方法,要根据实际情况来定。如果只是简单的去重,可以使用array_unique()函数;如果数据量比较小,可以使用循环遍历;如果数据量较大,可以使用array_walk()函数。

以上就是php如何快速去除二维数组的详细内容,更多请关注php中文网其它相关文章!

TG交流群(点击进入)----付费帮助搭建---修复---二开,以及发布求资源.
QQ交流群 922260178
© 版权声明
THE END
喜欢就支持一下吧
点赞1.9W+ 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容