2014-03-24 20 views
0

好吧,我敢肯定有一个简单的解决方案,而我缺少这个东西,但PHP亮点重复值

可以说我有这样一个简单的数组:

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* 
) 

编辑:错别字

+0

检查链接复制来看看如何发现出现不止一次的数组值。然后检查'$ number_of_occurrences> 1'并应用基于此的样式。 –

+0

乔尔,它不是重复的,问题是要求检测一个值有多少重复。 – Shanti

回答

2

这应该做的伎俩:

<?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] ISN”实际上与[3]和[6]一样,但我认为这只是一个错字

让我知道你如何继续!

+0

谢谢!这按预期工作!是的,这是一个错字,然后是一个复制粘贴错字:P – Shanti

0
$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; 
    } 
} 

注意,重复指示被删除