【问题标题】:php array_unique with exceptionsphp array_unique 有异常
【发布时间】:2011-08-29 22:34:04
【问题描述】:

我想删除数组中除 1 个值之外的重复值。

例如:

$array = array ("apple", "orange", "orange", "banana", "grapes","grapes", "apple");

如何删除所有重复值并保留所有等于“apple”的重复值

 $array = array ("apple", "orange", "banana", "grapes", "apple");

大约有 400 个值

【问题讨论】:

  • 您要保留apple 的位置还是只保留出现次数?

标签: php arrays array-unique


【解决方案1】:
$seen = array()
foreach ($array as $value)
    if ($value == 'apple' || !in_array($value, $seen))
        $seen[] = $value;

$seen 现在将只有唯一值,加上苹果。

【讨论】:

  • 苹果呢?苹果呢?
  • 提前一秒点击了更新,在您的评论之前添加了该行。 ;)
【解决方案2】:
$numbers = array_count_values($array);
$array = array_unique($array);
$array = array_merge($array, array_fill(1, $numbers['apple'], 'apple'));

【讨论】:

    【解决方案3】:
    $array = array ("apple", "orange", "orange", "banana", "grapes","grapes", "apple");
    
    $counts = array_count_values($array);
    
    $new_array = array_fill(0, $counts['apple']-2, 'apple'); // -2 to handle there already being an apple from the array_unique count below.
    $new_array = array_merge(array_unique($array), $new_array);
    

    【讨论】:

      猜你喜欢
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多