3v4l.org

run code in 300+ PHP versions simultaneously
<?php $pracownicy = [ [ "id_pracownika"=>1, "imie"=>"Jan", "nazwisko"=>"kowalski" ], [ "id_pracownika"=>2, "imie"=>"Jan", "nazwisko"=>"Wisniewski" ] ]; $grafiki = [ [ 'id_pracownika' => 1, "wartosc" => "URLOP", "dzien" => '2', "liczba_dni" => '2' ], [ 'id_pracownika' => 1, "wartosc" => "URLOP", "dzien" => '5', "liczba_dni" => '2' ], [ 'id_pracownika'=>2, "wartosc"=>"III", "dzien"=>'1' ], [ 'id_pracownika'=>2, "wartosc"=>"VI", "dzien"=>'3' ] ]; $rok = 2016; $miesiac = 12; $liczba_dni_w_miesiacu = 6; $licznik = 0; $godziny = '8'; echo "<table class=\'table table-bordered\'><thead>\n<tr><td>LP</td><td>ImiÄ™ i nazwisko</td>"; for($i= 1; $i <= $liczba_dni_w_miesiacu; $i++){ echo '<td>'.$i.'</td>'; } echo '</tr></thead><tbody>'; foreach ($pracownicy as $pracownik){ $licznik++; $oneEmployeeResults = null; foreach($grafiki as $grafik){ if($pracownik['id_pracownika'] == $grafik['id_pracownika']){ $newEvent = ['value' => $grafik['wartosc'], 'day' => $grafik['dzien']]; if(!empty($grafik["liczba_dni"])) { $newEvent['days'] = $grafik["liczba_dni"]; } $oneEmployeeResults[] = $newEvent; } } echo "<tr>\n<td>" . $licznik . '</td>' .'<td>'. $pracownik['imie'] . ' ' . $pracownik['nazwisko'] . '</td>'; for($i= 1; $i <= $liczba_dni_w_miesiacu; $i++){ echo '<td'; $oneDayOneEmployeeResults = null; if($oneEmployeeResults) { foreach ($oneEmployeeResults as $oneEmployeeResult) { if ((int)$oneEmployeeResult['day'] === $i) { if (!empty($oneEmployeeResult['days'])) { echo " colspan = '{$oneEmployeeResult['days']}'"; $i += (int)$oneEmployeeResult['days']; $i--; } echo ">{$oneEmployeeResult['value']}"; $oneDayOneEmployeeResults = true; } } } if(!$oneDayOneEmployeeResults) {echo ">$godziny";} echo '</td>'; } echo '</tr>'; } ?> </tbody></table>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 14
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 10
Branch analysis from position: 16
2 jumps found. (Code = 77) Position 1 = 18, Position 2 = 93
Branch analysis from position: 18
2 jumps found. (Code = 78) Position 1 = 19, Position 2 = 93
Branch analysis from position: 19
2 jumps found. (Code = 77) Position 1 = 22, Position 2 = 41
Branch analysis from position: 22
2 jumps found. (Code = 78) Position 1 = 23, Position 2 = 41
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 27, Position 2 = 40
Branch analysis from position: 27
2 jumps found. (Code = 43) Position 1 = 35, Position 2 = 38
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
Branch analysis from position: 38
Branch analysis from position: 40
Branch analysis from position: 41
1 jumps found. (Code = 42) Position 1 = 89
Branch analysis from position: 89
2 jumps found. (Code = 44) Position 1 = 91, Position 2 = 54
Branch analysis from position: 91
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
Branch analysis from position: 54
2 jumps found. (Code = 43) Position 1 = 57, Position 2 = 82
Branch analysis from position: 57
2 jumps found. (Code = 77) Position 1 = 58, Position 2 = 81
Branch analysis from position: 58
2 jumps found. (Code = 78) Position 1 = 59, Position 2 = 81
Branch analysis from position: 59
2 jumps found. (Code = 43) Position 1 = 63, Position 2 = 80
Branch analysis from position: 63
2 jumps found. (Code = 43) Position 1 = 66, Position 2 = 75
Branch analysis from position: 66
1 jumps found. (Code = 42) Position 1 = 58
Branch analysis from position: 58
Branch analysis from position: 75
Branch analysis from position: 80
Branch analysis from position: 81
2 jumps found. (Code = 43) Position 1 = 84, Position 2 = 87
Branch analysis from position: 84
2 jumps found. (Code = 44) Position 1 = 91, Position 2 = 54
Branch analysis from position: 91
Branch analysis from position: 54
Branch analysis from position: 87
Branch analysis from position: 81
Branch analysis from position: 82
Branch analysis from position: 41
Branch analysis from position: 93
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 93
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 10
Branch analysis from position: 16
Branch analysis from position: 10
filename:       /in/8XEkU
function name:  (null)
number of ops:  96
compiled vars:  !0 = $pracownicy, !1 = $grafiki, !2 = $rok, !3 = $miesiac, !4 = $liczba_dni_w_miesiacu, !5 = $licznik, !6 = $godziny, !7 = $i, !8 = $pracownik, !9 = $oneEmployeeResults, !10 = $grafik, !11 = $newEvent, !12 = $oneDayOneEmployeeResults, !13 = $oneEmployeeResult
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, <array>
   15     1        ASSIGN                                                   !1, <array>
   39     2        ASSIGN                                                   !2, 2016
   40     3        ASSIGN                                                   !3, 12
   41     4        ASSIGN                                                   !4, 6
   42     5        ASSIGN                                                   !5, 0
   43     6        ASSIGN                                                   !6, '8'
   44     7        ECHO                                                     '%3Ctable+class%3D%5C%27table+table-bordered%5C%27%3E%3Cthead%3E%0A%3Ctr%3E%3Ctd%3ELP%3C%2Ftd%3E%3Ctd%3EImi%C4%99+i+nazwisko%3C%2Ftd%3E'
   45     8        ASSIGN                                                   !7, 1
          9      > JMP                                                      ->14
   46    10    >   CONCAT                                           ~22     '%3Ctd%3E', !7
         11        CONCAT                                           ~23     ~22, '%3C%2Ftd%3E'
         12        ECHO                                                     ~23
   45    13        PRE_INC                                                  !7
         14    >   IS_SMALLER_OR_EQUAL                                      !7, !4
         15      > JMPNZ                                                    ~25, ->10
   48    16    >   ECHO                                                     '%3C%2Ftr%3E%3C%2Fthead%3E%3Ctbody%3E'
   49    17      > FE_RESET_R                                       $26     !0, ->93
         18    > > FE_FETCH_R                                               $26, !8, ->93
   50    19    >   PRE_INC                                                  !5
   51    20        ASSIGN                                                   !9, null
   52    21      > FE_RESET_R                                       $29     !1, ->41
         22    > > FE_FETCH_R                                               $29, !10, ->41
   53    23    >   FETCH_DIM_R                                      ~30     !8, 'id_pracownika'
         24        FETCH_DIM_R                                      ~31     !10, 'id_pracownika'
         25        IS_EQUAL                                                 ~30, ~31
         26      > JMPZ                                                     ~32, ->40
   54    27    >   FETCH_DIM_R                                      ~33     !10, 'wartosc'
         28        INIT_ARRAY                                       ~34     ~33, 'value'
         29        FETCH_DIM_R                                      ~35     !10, 'dzien'
         30        ADD_ARRAY_ELEMENT                                ~34     ~35, 'day'
         31        ASSIGN                                                   !11, ~34
   55    32        ISSET_ISEMPTY_DIM_OBJ                         1  ~37     !10, 'liczba_dni'
         33        BOOL_NOT                                         ~38     ~37
         34      > JMPZ                                                     ~38, ->38
   56    35    >   FETCH_DIM_R                                      ~40     !10, 'liczba_dni'
         36        ASSIGN_DIM                                               !11, 'days'
         37        OP_DATA                                                  ~40
   58    38    >   ASSIGN_DIM                                               !9
         39        OP_DATA                                                  !11
   52    40    > > JMP                                                      ->22
         41    >   FE_FREE                                                  $29
   61    42        CONCAT                                           ~42     '%3Ctr%3E%0A%3Ctd%3E', !5
         43        CONCAT                                           ~43     ~42, '%3C%2Ftd%3E'
         44        CONCAT                                           ~44     ~43, '%3Ctd%3E'
         45        FETCH_DIM_R                                      ~45     !8, 'imie'
         46        CONCAT                                           ~46     ~44, ~45
         47        CONCAT                                           ~47     ~46, '+'
         48        FETCH_DIM_R                                      ~48     !8, 'nazwisko'
         49        CONCAT                                           ~49     ~47, ~48
         50        CONCAT                                           ~50     ~49, '%3C%2Ftd%3E'
         51        ECHO                                                     ~50
   62    52        ASSIGN                                                   !7, 1
         53      > JMP                                                      ->89
   63    54    >   ECHO                                                     '%3Ctd'
   64    55        ASSIGN                                                   !12, null
   65    56      > JMPZ                                                     !9, ->82
   66    57    > > FE_RESET_R                                       $53     !9, ->81
         58    > > FE_FETCH_R                                               $53, !13, ->81
   67    59    >   FETCH_DIM_R                                      ~54     !13, 'day'
         60        CAST                                          4  ~55     ~54
         61        IS_IDENTICAL                                             !7, ~55
         62      > JMPZ                                                     ~56, ->80
   68    63    >   ISSET_ISEMPTY_DIM_OBJ                         1  ~57     !13, 'days'
         64        BOOL_NOT                                         ~58     ~57
         65      > JMPZ                                                     ~58, ->75
   69    66    >   ROPE_INIT                                     3  ~61     '+colspan+%3D+%27'
         67        FETCH_DIM_R                                      ~59     !13, 'days'
         68        ROPE_ADD                                      1  ~61     ~61, ~59
         69        ROPE_END                                      2  ~60     ~61, '%27'
         70        ECHO                                                     ~60
   70    71        FETCH_DIM_R                                      ~63     !13, 'days'
         72        CAST                                          4  ~64     ~63
         73        ASSIGN_OP                                     1          !7, ~64
   71    74        PRE_DEC                                                  !7
   73    75    >   NOP                                                      
         76        FETCH_DIM_R                                      ~67     !13, 'value'
         77        FAST_CONCAT                                      ~68     '%3E', ~67
         78        ECHO                                                     ~68
   74    79        ASSIGN                                                   !12, <true>
   66    80    > > JMP                                                      ->58
         81    >   FE_FREE                                                  $53
   78    82    >   BOOL_NOT                                         ~70     !12
         83      > JMPZ                                                     ~70, ->87
         84    >   NOP                                                      
         85        FAST_CONCAT                                      ~71     '%3E', !6
         86        ECHO                                                     ~71
   79    87    >   ECHO                                                     '%3C%2Ftd%3E'
   62    88        PRE_INC                                                  !7
         89    >   IS_SMALLER_OR_EQUAL                                      !7, !4
         90      > JMPNZ                                                    ~73, ->54
   81    91    >   ECHO                                                     '%3C%2Ftr%3E'
   49    92      > JMP                                                      ->18
         93    >   FE_FREE                                                  $26
   84    94        ECHO                                                     '%3C%2Ftbody%3E%3C%2Ftable%3E'
         95      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
194.55 ms | 1407 KiB | 13 Q