【问题标题】:PHP highlight duplicate values in array [duplicate]PHP突出显示数组中的重复值[重复]
【发布时间】:2014-05-02 07:56:36
【问题描述】:

好的,我很确定有一个简单的解决方案,但我错过了一些东西,但是

假设我有一个简单的数组:

Array
(
    [0] => 79990
    [1] => 79040
    [2] => 79100
    [3] => 79990
    [4] => 79490
    [5] => 79290
    [6] => 79990
)

0、3、6是同一个值

如何在 foreach 循环中标记/突出显示这些值?结果应该是这样的:

Array
(
    [0] => *79990*
    [1] => 79040
    [2] => 79100
    [3] => *79990*
    [4] => 79490
    [5] => 79290
    [6] => *79990*
)

编辑:错别字

【问题讨论】:

  • 检查链接的副本以查看如何查找多次出现的数组值。然后检查 $number_of_occurrences > 1 是否并在此基础上应用样式。
  • 乔尔,它不是重复的,问题要求检测一个值有多少重复。

标签: php arrays duplicates highlight


【解决方案1】:

这应该可以解决问题:

<?php

    $array = array( '79900',
                    '79040',
                    '79100',
                    '79990',
                    '79490',
                    '79290',
                    '79990');

    $count = array_count_values($array);

    echo "<pre>".print_r($array, true)."</pre>";

    foreach($array as $val)
    {
        if($count[$val]>1) {
            $output[] = "*".$val."*";
        } else {
            $output[] = $val;
        }
    }

    echo "<pre>".print_r($output, true)."</pre>";

?>

输出:

Array
(
    [0] => 79900
    [1] => 79040
    [2] => 79100
    [3] => 79990
    [4] => 79490
    [5] => 79290
    [6] => 79990
)

Array
(
    [0] => 79900
    [1] => 79040
    [2] => 79100
    [3] => *79990*
    [4] => 79490
    [5] => 79290
    [6] => *79990*
)

注意:您的 [0] 实际上与 [3] 和 [6] 不同,但我假设这只是一个错字

让我知道你过得怎么样!

【讨论】:

  • 谢谢!这按预期工作!是的,这是一个错字,然后是复制粘贴错字:P
【解决方案2】:
$array = array("79900","79040","79100","79990","79490","79290","79990");
$count = array_count_values( $array );
$list  = array();
foreach( $count as $index => $value ){
    if( $value > 1 ){
        $list[] = "*" . $index . "*";
    }else{
        $list[] = $index;
    }
}

注意重复的索引被删除了

【讨论】:

    猜你喜欢
    • 2010-11-27
    • 2016-06-19
    • 2016-09-07
    • 2016-03-13
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多