2013-11-28 2 views
-2

Привет, у меня есть повторяющиеся даты в значениях массива i wan, чтобы подсчитать количество повторяющихся дат из значения массива. Я попытался это, но я не уверен, чтобы сделать это правильно, и я получаю ошибку Undefined offset: 0Как проверить соответствующие значения массива в php?

<?php $array = array('2013-11-28','2013-11-28','2013-11-28','2013-11-29','2013-11-29','2013-11-30'); 

$len = sizeof($array); 
$len = $len-1; 
$day = array(); 
for($i=0; $i<=$len; $i++) 
{ 
    for($j=0; $j<=$len; $j++) 
    { 
     if($array[$i] == $array[$j]) 
     { 
      if($day[0] == '') 
      { 
       $co = 1; 
       $day[] = $co; 
      } 
      else { 
       $day[$i] = $co++; 
      } 
     } 
    } 
    echo 'day'.$i.' '.$day[$i].' '; 
} 
?> 

Из значений даты я должен получить 3 для 2013-11-28, 2 для 2013-11-29 и 1 для 2013- 11-30, как вы можете видеть 2013-11-28, представлен 3 раза, 2013-11-29 представлен 2 раза и 2013-11-30 представлен один раз.

Я могу понять, что ошибаюсь, потому что во втором цикле я снова начинаю с первого индекса, увеличивая счет.

Я хочу знать количество одинаковых дат. Как это сделать. Любой другой способ подсчитать это? Любая помощь, пожалуйста?

+0

Вы хотите группировать и считать? например '2013-11-28 = 3',' 2013-11-29 = 2' и '2013-11-30 = 1'? – haim770

+0

$ len = sizeof ($ array); используйте $ len = count ($ array); – SHIN

+2

@SHIN 'sizeof' и' count' эквивалентны. – Barmar

ответ

3

Использование array_count_values().

$dupesCount = array_count_values($array); 

Это даст вам массив, в котором значение является ключом, а новое значение - числом повторений.

+0

Спасибо за легкий ответ. Можно ли это сделать и в моей логике цикла? @alex – sun

+0

@sun Вам не нужно будет зацикливаться. – alex

Смежные вопросы