$myArray = Array(1,2,3,4,6,7,8,10,11,13,14,15,17,19);
$num = current($myArray);
$difference = $elements = 0;
$result = Array();
foreach ($myArray as $k=>$v) {
$prev = $k>0 ? $myArray[$k-1] : 0;
$difference += $v - $prev;
$elements++;
if ($difference > $elements) {
$result[] = $num . ($elements>1 && $prev ? '-' . $prev : '');
$num = $v;
$difference = $elements = 0;
}
}
// также добавить последний элемент или разницу между ним и последним запомненным
$result[] = $num . ($elements>1 && $v ? '-' . $v : '');
echo implode(',', $result);
$str = '';
$isRange = false;
for( $i = 0, $length = count( $myArray ); $i < $length; $i++ ) {
if( isset($myArray[ $i + 1 ] ) ) {
if( $myArray[ $i + 1 ] == $myArray[ $i ] + 1 ) {
if( $isRange ) {
continue;
}
$str .= $myArray[ $i ] . '-';
$isRange = true;
}
else {
$isRange = false;
$str .= $myArray[ $i ] . ',';
}
}
else {
$str .= $myArray[ $i ];
}
}
echo $str; // вернет ключ в массиве, или false, если элемент не найден
array_search($var, $array);if (array_search($var, $array) !== false) {
// элемент существует
} else {
// элемент не найден
}
error_reporting = E_ALL & ~E_DEPRECATEDheader('Location: /test.php');