【问题标题】:remove same values from an array [duplicate]从数组中删除相同的值[重复]
【发布时间】:2013-08-27 19:00:18
【问题描述】:

我有一个这样的数组

Array
(
    [0] => u1,u2
    [1] => u2,u1
    [2] => u4,u3
    [3] => u1,u3
    [4] => u1,u2
)

我想从数组中删除相似的值 我想要一个像

这样的输出
Array
    (
        [0] => u1,u2
        [1] => u4,u3
        [2] => u1,u3

    )

我尝试遍历输入数组,按字母顺序对索引的值进行排序,然后尝试使用 array_search 来查找重复的值。但从来没有真正得到想要的输出

任何帮助表示赞赏

【问题讨论】:

  • @RoyalBg:由于 array_unique 不起作用,我尝试了所有这些步骤。它不起作用
  • 正如我在 cmets 中对答案所说的那样,自 u1,u2 !== u2,u1 以来,它们都不起作用。 array_unique 仅匹配精确值。
  • 尝试在另一个数组中分解对并比较唯一的?

标签: php arrays


【解决方案1】:

您不能单独使用array_unique(),因为这只会匹配完全重复的内容。因此,您必须循环并检查该值的每个排列。

您可以使用array_unique() 开头,然后循环:

$myArray = array('u1,u2', 'u2,u1', 'u4,u3', 'u1,u3', 'u1,u2');

$newArr = array_unique($myArray);
$holderArr = array();

foreach($newArr as $val)
{
    $parts = explode(',', $val);
    $part1 = $parts[0].','.$parts[1];
    $part2 = $parts[1].','.$parts[0];

    if(!in_array($part1, $holderArr) && !in_array($part2, $holderArr))
    {
        $holderArr[] = $val;
    }
}

$newArr = $holderArr;

上面的代码会产生如下输出:

Array ( 
    [0] => u1,u2 
    [1] => u4,u3 
    [2] => u1,u3 
)

【讨论】:

  • 这解决了我的问题。非常感谢本 :)。感谢所有试图解决这个问题的人。
  • 认为这是决定 :) +1 整个答案。
  • 很高兴为您提供帮助。给其他人的注释,有时有助于阅读整个问题:)
【解决方案2】:

使用array_unique()PHP函数:

http://php.net/manual/en/function.array-unique.php

【讨论】:

  • 我认为array_unique 不会在这里工作,因为u1,u2 !== u2,u1
  • "想要删除相似的值" u1,u2 !== u2,u1 -> 我认为它们不相似。
  • 查看所需的输出。 unique != similar.
【解决方案3】:

使用函数array_unique($array)

【讨论】:

    【解决方案4】:
    array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )
    

    php manual

    【讨论】:

    • 我认为array_unique 不会在这里工作,因为u1,u2 !== u2,u1
    【解决方案5】:

    因为 u1,u2 !== u2,u1

        $array=array('u1,u2','u2,u1','u4,u3','u1,u3','u1,u2');
        foreach($array as $k=>$v)
        {
            $sub_arr = explode(',',$v);
            asort($sub_arr);
            $array[$k] = implode(',',$sub_arr);
        }
    
        $unique_array = array_unique($array);
    
        //$unique_array = array_values($unique_array) //if you want to preserve the ordered keys
    

    【讨论】:

      猜你喜欢
      • 2018-07-01
      • 2022-01-12
      • 1970-01-01
      • 2014-10-10
      • 2019-10-19
      • 2019-06-12
      • 2021-10-26
      • 2020-06-27
      相关资源
      最近更新 更多