Подскажите как подсчитать в массиве количество последовательностей (зигзагом) в двумерном массиве: Код (Text): $MyArray = array( // Сдесь блок из 3 (или если бы было больше) последовательности принимаем за 1 array("2001-03-10 17:16", "2001-03-11 12:50"), //0 array("2001-03-11 12:50", "2001-03-11 23:15"), //1 $MyArray[1][0] = $MyArray[0][1] array("2001-03-11 23:15", "2001-03-12 05:44"), //2 $MyArray[2][0] = $MyArray[1][1] // Сдесь блок из 2 последовательности принимаем за 1 array("2001-03-15 11:32", "2001-03-15 19:58"), //3 array("2001-03-15 19:58", "2001-03-16 11:32"), //4 $MyArray[4][0] = $MyArray[3][1] // Сдесь блок без последовательности мы также принимаем за 1 array("2001-03-17 10:05", "2001-03-17 15:44"), //5 // Сдесь блок из 2 последовательности принимаем за 1 array("2001-03-18 09:30", "2001-03-19 11:50"), //6 array("2001-03-19 11:50", "2001-03-19 18:22"), //7 $MyArray[7][0] = $MyArray[6][1] ); Выходит что $MyArray[id_next][0] = $MyArray[id_prev][1] Дата как бы идет зигзагом В данном примере 4 последовательности.
вот ) array("2001-03-10 17:16", "2001-03-11 12:50"), //0 array("2001-03-11 12:50", "2001-03-11 23:15"), //1 $MyArray[1][0] = $MyArray[0][1] array("2001-03-11 23:15", "2001-03-12 05:44"), //2 $MyArray[2][0] = $MyArray[1][1] грубо говоря в первой колонке дата открытия, а вторая закрытия. Последующая дата открытия равна, предыдущему закрытию.
OK. Теперь понял. Нужен счетчик. Сравнивать значения. Увеличивать счет на 1 если есть совпадния. В конце вывод.
PHP: <?php $MyArray = array( // Сдесь блок из 3 (или если бы было больше) последовательности принимаем за 1 array("2001-03-10 17:16", "2001-03-11 12:50"), //0 array("2001-03-11 12:50", "2001-03-11 23:15"), //1 $MyArray[1][0] = $MyArray[0][1] array("2001-03-11 23:15", "2001-03-12 05:44"), //2 $MyArray[2][0] = $MyArray[1][1] // Сдесь блок из 2 последовательности принимаем за 1 array("2001-03-15 11:32", "2001-03-15 19:58"), //3 array("2001-03-15 19:58", "2001-03-16 11:32"), //4 $MyArray[4][0] = $MyArray[3][1] // Сдесь блок без последовательности мы также принимаем за 1 array("2001-03-17 10:05", "2001-03-17 15:44"), //5 // Сдесь блок из 2 последовательности принимаем за 1 array("2001-03-18 09:30", "2001-03-19 11:50"), //6 array("2001-03-19 11:50", "2001-03-19 18:22"), //7 $MyArray[7][0] = $MyArray[6][1] ); echo '<pre>'; //объединяем массив, для наглядности foreach($MyArray as $ar1) { foreach($ar1 as $ar2) { $newarr[] = $ar2; } } print_r($newarr); $sequence = 0; foreach ($newarr as $key=>$value) { if (isset($newarr[$key-1]) && $newarr[$key-1] == $value) { $sequence++; } } echo 'found: '. $sequence.' sequences'; ?>