3v4l.org

run code in 500+ PHP versions simultaneously
<?php $fake_db_results = [ ['session_id' => 1, 'page_url' => 'http://a.com'], ['session_id' => 1, 'page_url' => 'http://b.com'], ['session_id' => 1, 'page_url' => 'http://c.com'], ['session_id' => 2, 'page_url' => 'http://d.com'], ['session_id' => 2, 'page_url' => 'http://e.com'], ['session_id' => 3, 'page_url' => 'http://f.com'], ['session_id' => 4, 'page_url' => 'http://g.com'], ['session_id' => 5, 'page_url' => 'http://h.com'] ]; $paths = []; foreach ($fake_db_results as $row) { if ( ! array_key_exists($row['session_id'], $paths) || ! is_array($paths[$row['session_id']])) { $paths[$row['session_id']] = []; } array_push($paths[$row['session_id']], $row['page_url']); } echo '<pre>'; var_dump($paths); $html = ''; foreach ($paths as $session => $page) { $html .= "<tr>\n"; $html .= '<td>' . $session . "</td>\n"; $html .= '<td>' . implode('| ', $page) . "</td>\n"; $html .= "</tr>\n"; } echo $html;
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 25
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 25
Branch analysis from position: 4
2 jumps found. (Code = 47) Position 1 = 8, Position 2 = 13
Branch analysis from position: 8
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 17
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 17
Branch analysis from position: 13
Branch analysis from position: 25
2 jumps found. (Code = 77) Position 1 = 32, Position 2 = 44
Branch analysis from position: 32
2 jumps found. (Code = 78) Position 1 = 33, Position 2 = 44
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 32
Branch analysis from position: 32
Branch analysis from position: 44
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 44
Branch analysis from position: 25
filename:       /in/OibBS
function name:  (null)
number of ops:  47
compiled vars:  !0 = $fake_db_results, !1 = $paths, !2 = $row, !3 = $html, !4 = $page, !5 = $session
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
   14     1        ASSIGN                                                       !1, <array>
   15     2      > FE_RESET_R                                           $8      !0, ->25
          3    > > FE_FETCH_R                                                   $8, !2, ->25
   16     4    >   FETCH_DIM_R                                          ~9      !2, 'session_id'
          5        ARRAY_KEY_EXISTS                                     ~10     ~9, !1
          6        BOOL_NOT                                             ~11     ~10
          7      > JMPNZ_EX                                             ~11     ~11, ->13
          8    >   FETCH_DIM_R                                          ~12     !2, 'session_id'
          9        FETCH_DIM_R                                          ~13     !1, ~12
         10        TYPE_CHECK                                      128  ~14     ~13
         11        BOOL_NOT                                             ~15     ~14
         12        BOOL                                                 ~11     ~15
         13    > > JMPZ                                                         ~11, ->17
   17    14    >   FETCH_DIM_R                                          ~16     !2, 'session_id'
         15        ASSIGN_DIM                                                   !1, ~16
         16        OP_DATA                                                      <array>
   19    17    >   INIT_FCALL                                                   'array_push'
         18        FETCH_DIM_R                                          ~18     !2, 'session_id'
         19        FETCH_DIM_W                                          $19     !1, ~18
         20        SEND_REF                                                     $19
         21        FETCH_DIM_R                                          ~20     !2, 'page_url'
         22        SEND_VAL                                                     ~20
         23        DO_ICALL                                                     
   15    24      > JMP                                                          ->3
         25    >   FE_FREE                                                      $8
   22    26        ECHO                                                         '%3Cpre%3E'
   23    27        INIT_FCALL                                                   'var_dump'
         28        SEND_VAR                                                     !1
         29        DO_ICALL                                                     
   25    30        ASSIGN                                                       !3, ''
   26    31      > FE_RESET_R                                           $24     !1, ->44
         32    > > FE_FETCH_R                                           ~25     $24, !4, ->44
         33    >   ASSIGN                                                       !5, ~25
   27    34        ASSIGN_OP                                         8          !3, '%3Ctr%3E%0A'
   28    35        CONCAT                                               ~28     '%3Ctd%3E', !5
         36        CONCAT                                               ~29     ~28, '%3C%2Ftd%3E%0A'
         37        ASSIGN_OP                                         8          !3, ~29
   29    38        FRAMELESS_ICALL_2                implode             ~31     '%7C+', !4
         39        CONCAT                                               ~32     '%3Ctd%3E', ~31
         40        CONCAT                                               ~33     ~32, '%3C%2Ftd%3E%0A'
         41        ASSIGN_OP                                         8          !3, ~33
   30    42        ASSIGN_OP                                         8          !3, '%3C%2Ftr%3E%0A'
   26    43      > JMP                                                          ->32
         44    >   FE_FREE                                                      $24
   33    45        ECHO                                                         !3
         46      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
238.08 ms | 2485 KiB | 16 Q