fork download
  1. <?php
  2.  
  3.  
  4. $result['android_animesr_details_ad_hours'] = '9,17-13,13-15';
  5.  
  6. function parseAdHours(string $hours): array
  7. {
  8. $output = [];
  9.  
  10. foreach (explode(',', $hours) as $part) {
  11. $part = trim($part);
  12.  
  13. if ($part === '') {
  14. continue;
  15. }
  16.  
  17. // Handle ranges like 13-15
  18. if (preg_match('/^(\d+)\s*-\s*(\d+)$/', $part, $matches)) {
  19. $start = (int) $matches[1];
  20. $end = (int) $matches[2];
  21.  
  22. if ($start <= $end) {
  23. $output = array_merge($output, range($start, $end));
  24. } else {
  25. $output = array_merge($output, range($end, $start));
  26. }
  27. }
  28. // Handle single values like 9
  29. elseif (is_numeric($part)) {
  30. $output[] = (int) $part;
  31. }
  32. }
  33.  
  34. $output = array_values(array_unique($output));
  35. sort($output);
  36.  
  37. return $output;
  38. }
  39.  
  40. $adHours = parseAdHours($result['android_animesr_details_ad_hours'] ?? '');
  41.  
  42. print_r($adHours);
Success #stdin #stdout 0.02s 26068KB
stdin
Standard input is empty
stdout
Array
(
    [0] => 9
    [1] => 13
    [2] => 14
    [3] => 15
    [4] => 16
    [5] => 17
)