【问题标题】:Check for unique and non-unique values in array检查数组中的唯一值和非唯一值
【发布时间】:2018-09-14 21:40:06
【问题描述】:

我们希望得到包含完整信息的结果,例如 Unique = Value1, Value2。重复= Value1 。我们有一个数组,下面提到了一个示例数组。

$array1 = array('John Wilkins', 'Poul Warner', 'Rodger Smith', 'David Bentham', 'David Wilkins', 'Brian Smith', 'David Warner', 'John Wilkins', 'Poul Warner', 'David Wilkins', 'Brian Smith', 'David Warner', 'John Wilkins', 'Poul Warner', 'David Bentham', 'David Wilkins');

我们将把这个函数用于数值。我们想以这种格式打印结果。

John Wilkins | Duplicate
Poul Warner  | Duplicate
Rodger Smith  | Unique

等等。

【问题讨论】:

  • 一个简单的问题,这样您的问题就不会被误解。但是,Unique = Value1, Value2. Duplicate= Value1 中的 Value1 怎么可能同时是唯一的和重复的呢?你想分别检查名字和姓氏吗?还是您只是印错了?

标签: php arrays algorithm


【解决方案1】:

这几乎就是array_count_values() 所做的:

<?php

$array1 = array('John Wilkins', 'Poul Warner', 'Rodger Smith', 'David Bentham', 'David Wilkins', 'Brian Smith', 'David Warner','John Wilkins', 'Poul Warner', 'David Wilkins', 'Brian Smith', 'David Warner','John Wilkins', 'Poul Warner', 'David Bentham', 'David Wilkins');

$counts = array_count_values($array1);
foreach ($counts as $name => $count) {
    print $name . ' | ' . ($count > 1 ? 'Duplicate' : 'Unique') . "\n";
}

输出:

John Wilkins | Duplicate
Poul Warner | Duplicate
Rodger Smith | Unique
David Bentham | Duplicate
David Wilkins | Duplicate
Brian Smith | Duplicate
David Warner | Duplicate

(demo)

【讨论】:

  • 如果可以为上述结构制作完整的代码,我将非常感谢您...就像我们打印的每个名称都是重复的或唯一的。
  • @Rodger 我不明白。你想例如打印John Wilkins 几次(每次都在前面加上“重复”)?在这种情况下,请参阅this example
【解决方案2】:
$array = array('apple', 'orange', 'pear', 'banana', 'apple',
'pear', 'kiwi', 'kiwi', 'kiwi');

print_r(array_count_values($array));
will output

Array
(
   [apple] => 2
   [orange] => 1
   [pear] => 2
   etc...
)

【讨论】:

    猜你喜欢
    • 2014-10-05
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    相关资源
    最近更新 更多