3v4l.org

run code in 500+ PHP versions simultaneously
<?php $csv = <<<CSV id: 10, location: Canada, people: 12 id: 10, location: United States, people: 15 id: 15, location: England, people: 19 id: 16, location: India, people: 20 id: 16, location: Germany, people: 9 CSV; foreach (explode(PHP_EOL, $csv) as $line) { $firstColumn = strtok($line, ','); if (!isset($lookup[$firstColumn])) { echo $line . PHP_EOL; $lookup[$firstColumn] = true; } }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 6, Position 2 = 20
Branch analysis from position: 6
2 jumps found. (Code = 78) Position 1 = 7, Position 2 = 20
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 15, Position 2 = 19
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
Branch analysis from position: 19
Branch analysis from position: 20
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 20
filename:       /in/A3kl5
function name:  (null)
number of ops:  22
compiled vars:  !0 = $csv, !1 = $line, !2 = $firstColumn, !3 = $lookup
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, 'id%3A+10%2C+location%3A+Canada%2C+people%3A+12%0Aid%3A+10%2C+location%3A+United+States%2C+people%3A+15%0Aid%3A+15%2C+location%3A+England%2C+people%3A+19%0Aid%3A+16%2C+location%3A+India%2C+people%3A+20%0Aid%3A+16%2C+location%3A+Germany%2C+people%3A+9'
   11     1        INIT_FCALL                                                   'explode'
          2        SEND_VAL                                                     '%0A'
          3        SEND_VAR                                                     !0
          4        DO_ICALL                                             $5      
          5      > FE_RESET_R                                           $6      $5, ->20
          6    > > FE_FETCH_R                                                   $6, !1, ->20
   12     7    >   INIT_FCALL                                                   'strtok'
          8        SEND_VAR                                                     !1
          9        SEND_VAL                                                     '%2C'
         10        DO_ICALL                                             $7      
         11        ASSIGN                                                       !2, $7
   13    12        ISSET_ISEMPTY_DIM_OBJ                             0  ~9      !3, !2
         13        BOOL_NOT                                             ~10     ~9
         14      > JMPZ                                                         ~10, ->19
   14    15    >   CONCAT                                               ~11     !1, '%0A'
         16        ECHO                                                         ~11
   15    17        ASSIGN_DIM                                                   !3, !2
         18        OP_DATA                                                      <true>
   11    19    > > JMP                                                          ->6
         20    >   FE_FREE                                                      $6
   17    21      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
160.16 ms | 1787 KiB | 15 Q