如何从PHP重新访问的多维数组中删除重复值
发布时间:2020-12-13 22:51:45 所属栏目: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_user
如何从
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',) 但仍然得到重复的答案.似乎对原始阵列没有影响. 解决方法
首先,从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)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |