3v4l.org

run code in 300+ PHP versions simultaneously
<?php $lexer = [ // will be normalized from => to 'Vorname' => 'Vorname', 'Nachname' => 'Nachname', 'Name' => 'Nachname', ]; $validator = [ // must be present 'Vorname', 'Nachname', ]; $data = [ // raw input 'Vorname' => 'Max', 'Name' => 'Mustermann', 'Alter' => '32', ]; function normalize($data, $lexer){ $result = []; foreach($data as $key => $val){ if(isset($lexer[$key])){ $result[$lexer[$key]] = $val; } } return $result; } echo 'translation '; print_r($lexer); echo 'validation '; print_r($validator); echo 'raw '; print_r($data); echo 'normalized '; $normalized = normalize($data, $lexer); print_r($normalized); echo 'diff raw '; print_r(array_diff(array_keys($data), $validator)); echo 'diff normalized '; print_r(array_diff(array_keys($normalized), $validator));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/GbUiO
function name:  (null)
number of ops:  47
compiled vars:  !0 = $lexer, !1 = $validator, !2 = $data, !3 = $normalized
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
    9     1        ASSIGN                                                   !1, <array>
   14     2        ASSIGN                                                   !2, <array>
   30     3        ECHO                                                     'translation+'
   31     4        INIT_FCALL                                               'print_r'
          5        SEND_VAR                                                 !0
          6        DO_ICALL                                                 
   32     7        ECHO                                                     'validation+'
   33     8        INIT_FCALL                                               'print_r'
          9        SEND_VAR                                                 !1
         10        DO_ICALL                                                 
   34    11        ECHO                                                     'raw+'
   35    12        INIT_FCALL                                               'print_r'
         13        SEND_VAR                                                 !2
         14        DO_ICALL                                                 
   36    15        ECHO                                                     'normalized+'
   37    16        INIT_FCALL                                               'normalize'
         17        SEND_VAR                                                 !2
         18        SEND_VAR                                                 !0
         19        DO_FCALL                                      0  $10     
         20        ASSIGN                                                   !3, $10
   38    21        INIT_FCALL                                               'print_r'
         22        SEND_VAR                                                 !3
         23        DO_ICALL                                                 
   39    24        ECHO                                                     'diff+raw+'
   40    25        INIT_FCALL                                               'print_r'
         26        INIT_FCALL                                               'array_diff'
         27        INIT_FCALL                                               'array_keys'
         28        SEND_VAR                                                 !2
         29        DO_ICALL                                         $13     
         30        SEND_VAR                                                 $13
         31        SEND_VAR                                                 !1
         32        DO_ICALL                                         $14     
         33        SEND_VAR                                                 $14
         34        DO_ICALL                                                 
   41    35        ECHO                                                     'diff+normalized+'
   42    36        INIT_FCALL                                               'print_r'
         37        INIT_FCALL                                               'array_diff'
         38        INIT_FCALL                                               'array_keys'
         39        SEND_VAR                                                 !3
         40        DO_ICALL                                         $16     
         41        SEND_VAR                                                 $16
         42        SEND_VAR                                                 !1
         43        DO_ICALL                                         $17     
         44        SEND_VAR                                                 $17
         45        DO_ICALL                                                 
         46      > RETURN                                                   1

Function normalize:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 12
Branch analysis from position: 4
2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 12
Branch analysis from position: 5
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 11
Branch analysis from position: 8
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 11
Branch analysis from position: 12
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
filename:       /in/GbUiO
function name:  normalize
number of ops:  15
compiled vars:  !0 = $data, !1 = $lexer, !2 = $result, !3 = $val, !4 = $key
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   20     0  E >   RECV                                             !0      
          1        RECV                                             !1      
   21     2        ASSIGN                                                   !2, <array>
   22     3      > FE_RESET_R                                       $6      !0, ->12
          4    > > FE_FETCH_R                                       ~7      $6, !3, ->12
          5    >   ASSIGN                                                   !4, ~7
   23     6        ISSET_ISEMPTY_DIM_OBJ                         0          !1, !4
          7      > JMPZ                                                     ~9, ->11
   24     8    >   FETCH_DIM_R                                      ~10     !1, !4
          9        ASSIGN_DIM                                               !2, ~10
         10        OP_DATA                                                  !3
   22    11    > > JMP                                                      ->4
         12    >   FE_FREE                                                  $6
   27    13      > RETURN                                                   !2
   28    14*     > RETURN                                                   null

End of function normalize

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
158.01 ms | 1407 KiB | 20 Q