PHPize Online / SQLize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
Copy Clear
Copy Format Clear
<?php function cut($num, $remove_intervals) { $result = []; usort($remove_intervals, function($a, $b){return $a[0] <=> $b[0];}); $remove = array_reduce( $remove_intervals, function($res, $el) { $cnt = count($res)-1; if ($el[0] <= $res[$cnt][1]) { $res[$cnt][1] = max($el[1], $res[$cnt][1]); } else { $res[] = $el; } return $res; }, [$remove_intervals[0]] ); $result = array_reduce( $remove, function($res, $el) use ($num) { $cnt = count($res)-1; if ($el[0] < $res[$cnt][1]) { $res[$cnt][1] = $el[0]; $res[] = [$el[1], $num]; } elseif ($el[0] > $res[$cnt][1]) { } return $res; }, [[1, $num]] ); var_export($result); return $result; } print_r(cut(10000, [[30, 500], [700, 900], [800, 1000]])); print_r(cut(10000, [[30, 500], [1200, 3700], [50, 700], [1000, 3000]]));
Show:  
Copy Clear