Kebetulan saya lagi perlu fungsi PHP khusus untuk mengurai angka. Sudah pernah buat fungsi ini sebelumnya, tapi lagi-lagi ga tau di mana tuh fungsi harus dicari. Supaya gampang nyarinya, mending ditaruh di blog saja.
Script ini sederhana aja, bisa ditulis dalam 5 menit saja. Tapi kalo setiap kali harus buat fungsi yang sudah pernah dibuat, cape juga kali yah.
Parameter yg diinput dalam fungsi ini berupa string daftar angka-angka, contohnya: 1-4, 8, 10, 20-23. Output yang diharapkan adalah sebuah Array dengan daftar angka yang sudah tersortir, seperti berikut: 1,2,3,4,8,10,20,21,22,23
Berikut Scriptnya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27  | function parse_number_list($numbers) {  $num_arr = array();  $list_num = explode(',', $numbers);  foreach($list_num as $key=>$value)  {  if (preg_match("/-/i", $value))  {  $x = explode('-', $value);  if (isset($x[0]) AND isset($x[1]))  {  if (is_numeric($x[0]) AND is_numeric($x[1]))  {  for($i=$x[0]; $i<=$x[1]; $i++)  if (!in_array($value, $num_arr)) array_push($num_arr, $i);  }  }  }  else  if (!in_array($value, $num_arr)) array_push($num_arr, $value);  }  return asort($num_arr); } $num = '1-4, 8, 10, 20-23'; print_r(parse_number_list($num));  | 
Hasilnya:
1 2 3 4 5 6 7 8 9 10 11 12 13  | Array (     [0] => 1     [1] => 2     [2] => 3     [3] => 4     [4] => 8     [5] => 10     [6] => 20     [7] => 21     [8] => 22     [9] => 23 )  | 
