Я хотел бы знать, как мы можем обнаружить повторяющиеся записи в массиве …
Что-то вроде
$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); }
но я не могу правильно установить данные, а также не смог создать цикл для сопоставления данных.
измененные значения
благодаря
СЭМ
Попробуйте это: это даст вам счет каждого значения
$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);
используйте функцию 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)
Попробуйте это, надеюсь, что это сработает
$FinalArray=array(); $arrayLen=count($array); for($i=0; $i<$arrayLen; $i++) { if(!in_array($array[$i],$FinalArray)) $FinalArray[]=$array[$i]; }
Теперь в $ FinalArray вы получили все уникальные ip
Попробуй это:
for ($i = 0; $i < count($array); $i++) for ($j = $i + 1; $j < count($array); $j++) if ($array[$i] == $array[$j]) echo $array[$i];
использовать функцию 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; ?>
найти Duplicate значения в массиве, используя 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); }