3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = [ ['id' => 1, 'name' => 'イワーク', 'place' => '渓谷,洞窟', 'level' => 10, 'technique' => '岩雪崩'], ['id' => 1, 'name' => 'イワーク', 'place' => '砂漠,山頂', 'level' => 20, 'technique' => '岩石砲'], ['id' => 2, 'name' => 'ハガネール', 'place' => '鉱山,地中', 'level' => 10, 'technique' => 'メテオドライブ'], ['id' => 2, 'name' => 'ハガネール', 'place' => '丘陵,窪地', 'level' => 20, 'technique' => 'アイアンローラー'], ]; $result = []; foreach ($data as ['id' => $id, 'name' => $name, 'place' => $places, 'level' => $level, 'technique' => $technique]) { $result[$id] ??= compact('id', 'name'); $place_list = $result[$id]['place_list'] ?? []; $result[$id]['place_list'] = array_merge($place_list, explode(',', $places)); $result[$id]['lv_list'][$level] = compact('level', 'technique'); } var_dump($result);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 50
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 50
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 50
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 50
filename:       /in/pRcC8
function name:  (null)
number of ops:  55
compiled vars:  !0 = $data, !1 = $result, !2 = $id, !3 = $name, !4 = $places, !5 = $level, !6 = $technique, !7 = $place_list
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   10     1        ASSIGN                                                   !1, <array>
   12     2      > FE_RESET_R                                       $10     !0, ->50
          3    > > FE_FETCH_R                                               $10, $11, ->50
          4    >   FETCH_LIST_R                                     $12     $11, 'id'
          5        ASSIGN                                                   !2, $12
          6        FETCH_LIST_R                                     $14     $11, 'name'
          7        ASSIGN                                                   !3, $14
          8        FETCH_LIST_R                                     $16     $11, 'place'
          9        ASSIGN                                                   !4, $16
         10        FETCH_LIST_R                                     $18     $11, 'level'
         11        ASSIGN                                                   !5, $18
         12        FETCH_LIST_R                                     $20     $11, 'technique'
         13        ASSIGN                                                   !6, $20
         14        FREE                                                     $11
   13    15        FETCH_DIM_IS                                     ~22     !1, !2
         16        COALESCE                                         ~23     ~22
         17        INIT_FCALL                                               'compact'
         18        SEND_VAL                                                 'id'
         19        SEND_VAL                                                 'name'
         20        DO_ICALL                                         $24     
         21        ASSIGN_DIM                                       ~25     !1, !2
         22        OP_DATA                                                  $24
         23        QM_ASSIGN                                        ~23     ~25
         24        FREE                                                     ~23
   14    25        FETCH_DIM_IS                                     ~26     !1, !2
         26        FETCH_DIM_IS                                     ~27     ~26, 'place_list'
         27        COALESCE                                         ~28     ~27
         28        QM_ASSIGN                                        ~28     <array>
         29        ASSIGN                                                   !7, ~28
   15    30        INIT_FCALL                                               'array_merge'
         31        SEND_VAR                                                 !7
         32        INIT_FCALL                                               'explode'
         33        SEND_VAL                                                 '%2C'
         34        SEND_VAR                                                 !4
         35        DO_ICALL                                         $32     
         36        SEND_VAR                                                 $32
         37        DO_ICALL                                         $33     
         38        FETCH_DIM_W                                      $30     !1, !2
         39        ASSIGN_DIM                                               $30, 'place_list'
         40        OP_DATA                                                  $33
   16    41        INIT_FCALL                                               'compact'
         42        SEND_VAL                                                 'level'
         43        SEND_VAL                                                 'technique'
         44        DO_ICALL                                         $37     
         45        FETCH_DIM_W                                      $34     !1, !2
         46        FETCH_DIM_W                                      $35     $34, 'lv_list'
         47        ASSIGN_DIM                                               $35, !5
         48        OP_DATA                                                  $37
   12    49      > JMP                                                      ->3
         50    >   FE_FREE                                                  $10
   19    51        INIT_FCALL                                               'var_dump'
         52        SEND_VAR                                                 !1
         53        DO_ICALL                                                 
         54      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
142.62 ms | 1010 KiB | 17 Q