我有一个数组,我想检查是否有重复使用PHP
$i=array('One','Two','Two','Three','Four','Five','Five','Six');我能够通过使用以下功能来实现它
function array_not_unique($input) {
$duplicates=array();
$processed=array();
foreach($input as $i) {
if(in_array($i,$processed)) {
$duplicates[]=$i;
} else {
$processed[]=$i;
}
}
return $duplicates;
}我的产量低于
Array ( [0] => Two [1] => Five ) 现在,如何使用引用array_not_unique函数返回值到HTML的重复值来显示前面的数组和标记值。
我的目标是用红色字体颜色显示复制的值。

发布于 2017-08-22 08:44:43
试试这段代码。最简单和最短的:)
$i=array('One','Two','Two','Three','Four','Five','Five','Six');
$arrayValueCounts = array_count_values($i);
foreach($i as $value){
if($arrayValueCounts[$value]>1){
echo '<span style="color:red">'.$value.'</span>';
}
else{
echo '<span>'.$value.'</span>';
}
}发布于 2017-08-22 08:51:30
这里是最优的方式,将打印准确的预期输出。
<?php
$i=array('One','Two','Two','Three','Four','Five','Five','Six');
$dups = array_count_values($i);
print_r($dups);
foreach($i as $v)
{
$colorStyle = ($dups[$v] > 1) ? 'style="color:red"' : '';
echo "<span $colorStyle>$v</span>";
}
?>发布于 2017-08-22 08:41:36
尝尝这个,
function array_not_unique($input) {
$duplicates=array();
$processed=array();
foreach($input as $key => $i) {
if(in_array($i,$processed)) {
$duplicates[$key]=$i; // fetching only duplicates here and its key and value
}
}
return $duplicates;
}
foreach($processed as $k => $V){
if(!empty($duplicates[$k])){ // if duplicate found then red
echo '<span style="color:red">'.$duplicates[$k].'</span>';
}else{
echo '<span>'.$duplicates[$k].'</span>'; // normal string
}
}https://stackoverflow.com/questions/45812736
复制相似问题