php删除多维数组重复数,如何从PHP重新访问的多维数组中删除重复值

如何从PHP中的多维数组中删除重复值?

初始数组:

array (

0 =>

array (

'following_userid' => '88',

),

1 =>

array (

'following_userid' => '89',

),

2 =>

array (

'following_userid' => '287',

),

3 =>

array (

'following_userid' => '346',

),

4 =>

array (

'following_userid' => '405',

),

5 =>

array (

'following_userid' => '284',

),

6 =>

array (

'following_userid' => '583',

),

7 =>

array (

'following_userid' => '587',

),

8 =>

array (

'following_userid' => '655',

),

9 =>

array (

'following_userid' => '95',

),

10 =>

array (

'follower_userid' => '89',

),

11 =>

array (

'follower_userid' => '88',

),

12 =>

array (

'follower_userid' => '353',

),

13 =>

array (

'follower_userid' => '42',

),

14 =>

array (

'follower_userid' => '626',

),

15 =>

array (

'follower_userid' => '655',

),

16 =>

array (

'follower_userid' => '95',

),

)

根据How to remove duplicate values from a multi-dimensional array in PHP建议我使用$input = array_map(“unserialize”,array_unique(array_map(“serialize”,$input)));

数组执行array_unique()后:

array (

0 =>

array (

'following_userid' => '88',

),

1 =>

array (

'following_userid' => '89',

),

2 =>

array (

'following_userid' => '287',

),

3 =>

array (

'following_userid' => '346',

),

4 =>

array (

'following_userid' => '405',

),

5 =>

array (

'following_userid' => '284',

),

6 =>

array (

'following_userid' => '583',

),

7 =>

array (

'following_userid' => '587',

),

8 =>

array (

'following_userid' => '655',

),

9 =>

array (

'following_userid' => '95',

),

10 =>

array (

'follower_userid' => '89',

),

11 =>

array (

'follower_userid' => '88',

),

12 =>

array (

'follower_userid' => '353',

),

13 =>

array (

'follower_userid' => '42',

),

14 =>

array (

'follower_userid' => '626',

),

15 =>

array (

'follower_userid' => '655',

),

16 =>

array (

'follower_userid' => '95',

),

)

但仍然得到重复的答案.似乎对原始阵列没有影响.

解决方法:

首先,从5.2.9开始,您可以使用更简单的版本,取自this answer:

array_unique($array, SORT_REGULAR);

在这种情况下,array_unique()实际上给出了正确的输出;这里的事情是你的数组中有两个不同的键:“follower_userid”和“following_userid”,所以要获得唯一的id而不管键,你必须先将它标准化:

array_map('current', $array);

这样做会获取每个数组的第一个元素,并创建一个只包含第一个元素值的新数组.

输出:

Array

(

[0] => 88

[1] => 89

[2] => 287

[3] => 346

[4] => 405

[5] => 284

[6] => 583

[7] => 587

[8] => 655

[9] => 95

[10] => 89

[11] => 88

[12] => 353

[13] => 42

[14] => 626

[15] => 655

[16] => 95

);

然后应用array_unique():

array_unique(array_map('current', $array));

标签:php,arrays

来源: https://codeday.me/bug/20190708/1405877.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值