Jacek Kowalski
2023-07-24 8cde7c538ea1d0d8aa51bcb3f2482ae4f19713ad
commit | author | age
bcd661 1 <?php
JK 2 abstract class VehicleTypes {
3     protected $typesByNumber = [];
4     
5     protected function __construct($data, $defaultLow=NULL) {
6         $data = explode("\n", trim($data));
7         foreach($data as $line) {
8             $line = explode("\t", trim($line));
9             for($i = (int)$line[0]; $i <= (int)$line[1]; $i++) {
10                 $this->typesByNumber[$i] = [
11                     'num' => $line[2] . str_pad($i, 3, '0', STR_PAD_LEFT),
12                     'type' => $line[3],
13                     'low' => (int)(isset($line[4]) ? $line[4] : $defaultLow),
14                 ];
15             }
16         }
17     }
18     
19     public function getByNumber($id) {
729413 20         $id = intval($id, 10);
bcd661 21         return $this->typesByNumber[$id] ?? [
729413 22             'num' => '??' . str_pad($id, 3, '0', STR_PAD_LEFT),
bcd661 23             'type' => '?',
JK 24             'low' => NULL,
25         ];
26     }
27 }