$n = array (1, 2, 4, 5, 7, 8, 10, 11, 12, 13, 14, 16, 17);
$lastindex = count($n)-1;
foreach($n as $k => $i)
{
if($k == 0) echo $i;
elseif($i != $n[$k-1]+1) echo ', ' . $i;
elseif($k == $lastindex || $i+1 != $n[$k+1]) echo ' - ' . $i;
}
विस्फोट के साथ समारोह:
http://codepad.org/DKztLGhe
function shorten($numbers){
$a = explode(' ',$numbers);
$lastindex = count($a)-1;
$s = '';
foreach($a as $i => $n){
if($i == 0) $s .= $n;
else if($a[$i-1]+1 != $n) $s .= ', '.$n;
else if($i == $lastindex || $n+1 != $a[$i+1]) $s .= ' - '.$n;
}
return $s;
}
print_r(shorten('').'<br>');
print_r(shorten('1').'<br>');
print_r(shorten('1 2').'<br>');
print_r(shorten('1 3').'<br>');
print_r(shorten('1 3 4 6').'<br>');
print_r(shorten('1 3 4 6 7').'<br>');
print_r(shorten('1 2 3 4 5').'<br>');
print_r(shorten('1 2 3 5 6 10 12 13').'<br>');
तुम क्या करने की कोशिश की है? यदि आप एक विशिष्ट प्रश्न पोस्ट करते हैं तो आप पाएंगे कि आपको सर्वोत्तम प्रतिक्रिया मिलती है (यानी आपने जो कोड किया है और यह कैसे काम नहीं कर रहा है)। – liquorvicar