【问题标题】:How can we find the Duplicate values in array using php?我们如何使用 php 找到数组中的重复值?
【发布时间】:2013-03-04 10:30:00
【问题描述】:

我想知道,我们如何检测数组中的重复条目...

有点像

$array = array("192.168.1.1", "192.168.2.1","192.168.3.1","192.168.4.1","192.168.2.1","192.168.2.1","192.168.10.1","192.168.2.1","192.168.11.1","192.168.1.4") ;

我想获取数组中使用的 Duplicity 的数量(C 类唯一)。 像这样

192.168.1.1 = unique
192.168.2.1 = Duplicate
192.168.3.1 = unique
192.168.4.1 = unique
192.168.2.1 = Duplicate
192.168.2.1 = Duplicate
192.168.10.1 = unique
192.168.2.1 = Duplicate
192.168.11.1 = unique
192.168.1.4 = Duplicate (Modified)

我试过这种风格的代码

$array2 = array() ;

foreach($array as $list ){

$ips = $list;

$ip = explode(".",$ips);

$rawip = $ip[0].".".$ip[1].".".$ip[2] ;

array_push($array2,$rawip);

}

但我无法以正确的方式设置数据,也无法进行循环以匹配数据。

修改值

谢谢

山姆

【问题讨论】:

标签: php arrays


【解决方案1】:

试试这个:这会给你每个值的计数

$array = array("192.168.1.1", "192.168.2.1","192.168.3.1","192.168.4.1","192.168.2.1","192.168.2.1","192.168.10.1","192.168.2.1","192.168.11.1") ;

$cnt_array = array_count_values($array)

echo "<pre>"; 
print_r($cnt_array);

$res = array();
foreach($cnt_array as $key=>$val){
   if($val == 1){
      $res[$key] = 'unique';
   }
   else{
      $res[$key] = 'duplicate';
   }
}

echo "<pre>";
print_r($res);

【讨论】:

  • 请查看更新后的问题。我说的是重复的 c' 类
  • 你忘了把分号放在最后 $cnt_array = array_count_values($array);
【解决方案2】:

使用array_unique($array) 函数。 它会给你下面的输出。

Array
(
    [0] => 192.168.1.1
    [1] => 192.168.2.1
    [2] => 192.168.3.1
    [3] => 192.168.4.1
    [6] => 192.168.10.1
    [8] => 192.168.11.1
)

并且总重复计数必须是:

array_count_values($array)

【讨论】:

  • 请查看更新后的问题。我说的是重复的 c' 类
【解决方案3】:

试试这个,希望它会工作

$FinalArray=array();
$arrayLen=count($array);
for($i=0; $i<$arrayLen;  $i++)
{
    if(!in_array($array[$i],$FinalArray))
        $FinalArray[]=$array[$i];
}

现在在 $FinalArray 你得到了所有唯一的 ip

【讨论】:

  • 请查看更新后的问题。我说的是重复的 c' 类
【解决方案4】:

试试这个:

for ($i = 0; $i < count($array); $i++) 
    for ($j = $i + 1; $j < count($array); $j++)
        if ($array[$i] == $array[$j])
            echo  $array[$i]; 

【讨论】:

    【解决方案5】:

    使用 in_array() 函数检查值是否在数组中

    <?php
    $output ='';
    $array = array(0, 1, 1, 2, 2, 3, 3);
    $isArraycheckedvalue = array();
    for ($i=0; $i < sizeof($array); $i++) 
    {
        $eachArrayValue = $array[$i];
        if(! in_array($eachArrayValue, $isArraycheckedvalue)) 
        {
            $isArraycheckedvalue[] = $eachArrayValue;
            $output .= $eachArrayValue. " Repated no <br/>";      
        }
        else
        {
            $isArraycheckedvalue[] = $eachArrayValue;
            $output .= $eachArrayValue. " Repated  yes <br/>";
        }
    }
    echo $output;
    ?>
    

    【讨论】:

      【解决方案6】:

      find the Duplicate values in array using php

      function array_repeat($arr){
          if(!is_array($arr))
              return $arr;
          $arr1 = array_unique($arr);
          $arr3 = array_diff_key($arr,$arr1);
          return array_unique($arr3);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-04
        相关资源
        最近更新 更多