3v4l.org

run code in 300+ PHP versions simultaneously
<?php // arr1 $a = ['tip1', 'tip2', 'tip3', 'tip4', 'tip5']; $x = new stdClass(); $x->denumireTip = 'tip1'; $x->valoare = 8; $y = new stdClass(); $y->denumireTip = 'tip3'; $y->valoare = 14; $z = new stdClass(); $z->denumireTip = 'tip4'; $z->valoare = 2; // arr2 $b = [$x, $y, $z]; // arr2 cu cheile schimbate in denumireTip -> sa fie unice $c = []; foreach ($b as $value) { $c[$value->denumireTip] = $value; } // arr3 - rezultatul $d = []; foreach ($a as $value) { if (isset($c[$value])) { $d[] = $c[$value]; } else { $o = new stdClass(); $o->denumireTip = $value; $o->valoare = 0; $d[] = $o; unset($o); } } var_dump($d);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 28, Position 2 = 33
Branch analysis from position: 28
2 jumps found. (Code = 78) Position 1 = 29, Position 2 = 33
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
Branch analysis from position: 33
2 jumps found. (Code = 77) Position 1 = 36, Position 2 = 54
Branch analysis from position: 36
2 jumps found. (Code = 78) Position 1 = 37, Position 2 = 54
Branch analysis from position: 37
2 jumps found. (Code = 43) Position 1 = 39, Position 2 = 43
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 53
Branch analysis from position: 53
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
Branch analysis from position: 43
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
Branch analysis from position: 54
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 54
Branch analysis from position: 33
filename:       /in/VRRkC
function name:  (null)
number of ops:  59
compiled vars:  !0 = $a, !1 = $x, !2 = $y, !3 = $z, !4 = $b, !5 = $c, !6 = $value, !7 = $d, !8 = $o
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
    5     1        NEW                                              $10     'stdClass'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $10
    6     4        ASSIGN_OBJ                                               !1, 'denumireTip'
          5        OP_DATA                                                  'tip1'
    7     6        ASSIGN_OBJ                                               !1, 'valoare'
          7        OP_DATA                                                  8
    8     8        NEW                                              $15     'stdClass'
          9        DO_FCALL                                      0          
         10        ASSIGN                                                   !2, $15
    9    11        ASSIGN_OBJ                                               !2, 'denumireTip'
         12        OP_DATA                                                  'tip3'
   10    13        ASSIGN_OBJ                                               !2, 'valoare'
         14        OP_DATA                                                  14
   11    15        NEW                                              $20     'stdClass'
         16        DO_FCALL                                      0          
         17        ASSIGN                                                   !3, $20
   12    18        ASSIGN_OBJ                                               !3, 'denumireTip'
         19        OP_DATA                                                  'tip4'
   13    20        ASSIGN_OBJ                                               !3, 'valoare'
         21        OP_DATA                                                  2
   16    22        INIT_ARRAY                                       ~25     !1
         23        ADD_ARRAY_ELEMENT                                ~25     !2
         24        ADD_ARRAY_ELEMENT                                ~25     !3
         25        ASSIGN                                                   !4, ~25
   19    26        ASSIGN                                                   !5, <array>
   20    27      > FE_RESET_R                                       $28     !4, ->33
         28    > > FE_FETCH_R                                               $28, !6, ->33
   21    29    >   FETCH_OBJ_R                                      ~29     !6, 'denumireTip'
         30        ASSIGN_DIM                                               !5, ~29
         31        OP_DATA                                                  !6
   20    32      > JMP                                                      ->28
         33    >   FE_FREE                                                  $28
   25    34        ASSIGN                                                   !7, <array>
   26    35      > FE_RESET_R                                       $32     !0, ->54
         36    > > FE_FETCH_R                                               $32, !6, ->54
   27    37    >   ISSET_ISEMPTY_DIM_OBJ                         0          !5, !6
         38      > JMPZ                                                     ~33, ->43
   28    39    >   FETCH_DIM_R                                      ~35     !5, !6
         40        ASSIGN_DIM                                               !7
         41        OP_DATA                                                  ~35
         42      > JMP                                                      ->53
   30    43    >   NEW                                              $36     'stdClass'
         44        DO_FCALL                                      0          
         45        ASSIGN                                                   !8, $36
   31    46        ASSIGN_OBJ                                               !8, 'denumireTip'
         47        OP_DATA                                                  !6
   32    48        ASSIGN_OBJ                                               !8, 'valoare'
         49        OP_DATA                                                  0
   33    50        ASSIGN_DIM                                               !7
         51        OP_DATA                                                  !8
   34    52        UNSET_CV                                                 !8
   26    53    > > JMP                                                      ->36
         54    >   FE_FREE                                                  $32
   38    55        INIT_FCALL                                               'var_dump'
         56        SEND_VAR                                                 !7
         57        DO_ICALL                                                 
         58      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
165.38 ms | 1400 KiB | 15 Q