<?php
class Task {
public $id;
public $start;
public $end;
public function __construct($id, $start, $end) {
$this->id = $id;
$this->start = $start;
$this->end = $end;
}
public function run() {
if ($this->start <= $this->end) {
printf(
"Task #%d on %d\n", $this->id, $this->start);
$this->start++;
return true;
}
return false;
}
}
$tasks = [
new Task(1, 1, 100),
new Task(2, 101, 200),
new Task(3, 201, 300)
];
do {
$continue = false;
foreach ($tasks as $task) {
if ($task->run()) {
if (!$continue)
$continue = true;
}
}
} while ($continue);
?>
Task #1 on 1
Task #2 on 101
Task #3 on 201
Task #1 on 2
Task #2 on 102
Task #3 on 202
Task #1 on 3
Task #2 on 103
Task #3 on 203
Task #1 on 4
Task #2 on 104
Task #3 on 204
Task #1 on 5
Task #2 on 105
Task #3 on 205
Task #1 on 6
Task #2 on 106
Task #3 on 206
Task #1 on 7
Task #2 on 107
Task #3 on 207
Task #1 on 8
Task #2 on 108
Task #3 on 208
Task #1 on 9
Task #2 on 109
Task #3 on 209
Task #1 on 10
Task #2 on 110
Task #3 on 210
Task #1 on 11
Task #2 on 111
Task #3 on 211
Task #1 on 12
Task #2 on 112
Task #3 on 212
Task #1 on 13
Task #2 on 113
Task #3 on 213
Task #1 on 14
Task #2 on 114
Task #3 on 214
Task #1 on 15
Task #2 on 115
Task #3 on 215
Task #1 on 16
Task #2 on 116
Task #3 on 216
Task #1 on 17
Task #2 on 117
Task #3 on 217
Task #1 on 18
Task #2 on 118
Task #3 on 218
Task #1 on 19
Task #2 on 119
Task #3 on 219
Task #1 on 20
Task #2 on 120
Task #3 on 220
Task #1 on 21
Task #2 on 121
Task #3 on 221
Task #1 on 22
Task #2 on 122
Task #3 on 222
Task #1 on 23
Task #2 on 123
Task #3 on 223
Task #1 on 24
Task #2 on 124
Task #3 on 224
Task #1 on 25
Task #2 on 125
Task #3 on 225
Task #1 on 26
Task #2 on 126
Task #3 on 226
Task #1 on 27
Task #2 on 127
Task #3 on 227
Task #1 on 28
Task #2 on 128
Task #3 on 228
Task #1 on 29
Task #2 on 129
Task #3 on 229
Task #1 on 30
Task #2 on 130
Task #3 on 230
Task #1 on 31
Task #2 on 131
Task #3 on 231
Task #1 on 32
Task #2 on 132
Task #3 on 232
Task #1 on 33
Task #2 on 133
Task #3 on 233
Task #1 on 34
Task #2 on 134
Task #3 on 234
Task #1 on 35
Task #2 on 135
Task #3 on 235
Task #1 on 36
Task #2 on 136
Task #3 on 236
Task #1 on 37
Task #2 on 137
Task #3 on 237
Task #1 on 38
Task #2 on 138
Task #3 on 238
Task #1 on 39
Task #2 on 139
Task #3 on 239
Task #1 on 40
Task #2 on 140
Task #3 on 240
Task #1 on 41
Task #2 on 141
Task #3 on 241
Task #1 on 42
Task #2 on 142
Task #3 on 242
Task #1 on 43
Task #2 on 143
Task #3 on 243
Task #1 on 44
Task #2 on 144
Task #3 on 244
Task #1 on 45
Task #2 on 145
Task #3 on 245
Task #1 on 46
Task #2 on 146
Task #3 on 246
Task #1 on 47
Task #2 on 147
Task #3 on 247
Task #1 on 48
Task #2 on 148
Task #3 on 248
Task #1 on 49
Task #2 on 149
Task #3 on 249
Task #1 on 50
Task #2 on 150
Task #3 on 250
Task #1 on 51
Task #2 on 151
Task #3 on 251
Task #1 on 52
Task #2 on 152
Task #3 on 252
Task #1 on 53
Task #2 on 153
Task #3 on 253
Task #1 on 54
Task #2 on 154
Task #3 on 254
Task #1 on 55
Task #2 on 155
Task #3 on 255
Task #1 on 56
Task #2 on 156
Task #3 on 256
Task #1 on 57
Task #2 on 157
Task #3 on 257
Task #1 on 58
Task #2 on 158
Task #3 on 258
Task #1 on 59
Task #2 on 159
Task #3 on 259
Task #1 on 60
Task #2 on 160
Task #3 on 260
Task #1 on 61
Task #2 on 161
Task #3 on 261
Task #1 on 62
Task #2 on 162
Task #3 on 262
Task #1 on 63
Task #2 on 163
Task #3 on 263
Task #1 on 64
Task #2 on 164
Task #3 on 264
Task #1 on 65
Task #2 on 165
Task #3 on 265
Task #1 on 66
Task #2 on 166
Task #3 on 266
Task #1 on 67
Task #2 on 167
Task #3 on 267
Task #1 on 68
Task #2 on 168
Task #3 on 268
Task #1 on 69
Task #2 on 169
Task #3 on 269
Task #1 on 70
Task #2 on 170
Task #3 on 270
Task #1 on 71
Task #2 on 171
Task #3 on 271
Task #1 on 72
Task #2 on 172
Task #3 on 272
Task #1 on 73
Task #2 on 173
Task #3 on 273
Task #1 on 74
Task #2 on 174
Task #3 on 274
Task #1 on 75
Task #2 on 175
Task #3 on 275
Task #1 on 76
Task #2 on 176
Task #3 on 276
Task #1 on 77
Task #2 on 177
Task #3 on 277
Task #1 on 78
Task #2 on 178
Task #3 on 278
Task #1 on 79
Task #2 on 179
Task #3 on 279
Task #1 on 80
Task #2 on 180
Task #3 on 280
Task #1 on 81
Task #2 on 181
Task #3 on 281
Task #1 on 82
Task #2 on 182
Task #3 on 282
Task #1 on 83
Task #2 on 183
Task #3 on 283
Task #1 on 84
Task #2 on 184
Task #3 on 284
Task #1 on 85
Task #2 on 185
Task #3 on 285
Task #1 on 86
Task #2 on 186
Task #3 on 286
Task #1 on 87
Task #2 on 187
Task #3 on 287
Task #1 on 88
Task #2 on 188
Task #3 on 288
Task #1 on 89
Task #2 on 189
Task #3 on 289
Task #1 on 90
Task #2 on 190
Task #3 on 290
Task #1 on 91
Task #2 on 191
Task #3 on 291
Task #1 on 92
Task #2 on 192
Task #3 on 292
Task #1 on 93
Task #2 on 193
Task #3 on 293
Task #1 on 94
Task #2 on 194
Task #3 on 294
Task #1 on 95
Task #2 on 195
Task #3 on 295
Task #1 on 96
Task #2 on 196
Task #3 on 296
Task #1 on 97
Task #2 on 197
Task #3 on 297
Task #1 on 98
Task #2 on 198
Task #3 on 298
Task #1 on 99
Task #2 on 199
Task #3 on 299
Task #1 on 100
Task #2 on 200
Task #3 on 300