3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ 'first_level' => [ 'dir_3' => [ 'subdir_1' => [ 'file_2.mp4' => (object) [ 'name' => 'file_2.mp4' ], 'file_1.mp4' => (object) [ 'name' => 'file_1.mp4' ] ] ], 'dir_1' => [ 'subdir_2' => [ 'file_6.mp4' => (object) [ 'name' => 'file_6.mp4' ], 'file_9.mp4' => (object) [ 'name' => 'file_9.mp4' ], 'file_7.mp4' => (object) [ 'name' => 'file_7.mp4' ], 'file_17.mp4' => (object) [ 'name' => 'file_17.mp4' ], ], 'subdir_1' => [ 'file_8.mp4' => (object) [ 'name' => 'file_8.mp4' ], ] ] ], 'fake_level' => [ 'dir_7' => [ 'subdir_1' => [ 'file_5.mp4' => (object) [ 'name' => 'file_5.mp4', 'size' => 56, 'active' => true, ], 'file_19.mp4' => (object) [ 'name' => 'file_19.mp4', 'size' => 77, 'active' => false, ], 'file_33.mp4' => (object) [ 'name' => 'file_33.mp4', 'size' => 81, 'active' => true, ], ] ], 'dir_13' => [], 'dir_101' => [], 'dir_66' => [], ] ]; $nat_ksort_r = function(&$data) use (&$nat_ksort_r) { if (is_array($data)) { ksort($data, SORT_NATURAL); foreach ($data as &$item) { $nat_ksort_r($item); } } }; $nat_ksort_r($array); var_export($array);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/JLi2f
function name:  (null)
number of ops:  43
compiled vars:  !0 = $array, !1 = $nat_ksort_r
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    8     0  E >   CAST                                          8  ~2      <array>
          1        INIT_ARRAY                                       ~3      ~2, 'file_2.mp4'
   11     2        CAST                                          8  ~4      <array>
          3        ADD_ARRAY_ELEMENT                                ~3      ~4, 'file_1.mp4'
          4        INIT_ARRAY                                       ~5      ~3, 'subdir_1'
          5        INIT_ARRAY                                       ~6      ~5, 'dir_3'
   18     6        CAST                                          8  ~7      <array>
          7        INIT_ARRAY                                       ~8      ~7, 'file_6.mp4'
   21     8        CAST                                          8  ~9      <array>
          9        ADD_ARRAY_ELEMENT                                ~8      ~9, 'file_9.mp4'
   24    10        CAST                                          8  ~10     <array>
         11        ADD_ARRAY_ELEMENT                                ~8      ~10, 'file_7.mp4'
   27    12        CAST                                          8  ~11     <array>
         13        ADD_ARRAY_ELEMENT                                ~8      ~11, 'file_17.mp4'
         14        INIT_ARRAY                                       ~12     ~8, 'subdir_2'
   32    15        CAST                                          8  ~13     <array>
         16        INIT_ARRAY                                       ~14     ~13, 'file_8.mp4'
         17        ADD_ARRAY_ELEMENT                                ~12     ~14, 'subdir_1'
         18        ADD_ARRAY_ELEMENT                                ~6      ~12, 'dir_1'
         19        INIT_ARRAY                                       ~15     ~6, 'first_level'
   41    20        CAST                                          8  ~16     <array>
         21        INIT_ARRAY                                       ~17     ~16, 'file_5.mp4'
   46    22        CAST                                          8  ~18     <array>
         23        ADD_ARRAY_ELEMENT                                ~17     ~18, 'file_19.mp4'
   51    24        CAST                                          8  ~19     <array>
         25        ADD_ARRAY_ELEMENT                                ~17     ~19, 'file_33.mp4'
         26        INIT_ARRAY                                       ~20     ~17, 'subdir_1'
         27        INIT_ARRAY                                       ~21     ~20, 'dir_7'
    8    28        ADD_ARRAY_ELEMENT                                ~21     <array>, 'dir_13'
         29        ADD_ARRAY_ELEMENT                                ~21     <array>, 'dir_101'
         30        ADD_ARRAY_ELEMENT                                ~21     <array>, 'dir_66'
         31        ADD_ARRAY_ELEMENT                                ~15     ~21, 'fake_level'
    3    32        ASSIGN                                                   !0, ~15
   63    33        DECLARE_LAMBDA_FUNCTION                          ~23     [0]
         34        BIND_LEXICAL                                             ~23, !1
         35        ASSIGN                                                   !1, ~23
   71    36        INIT_DYNAMIC_CALL                                        !1
         37        SEND_VAR_EX                                              !0
         38        DO_FCALL                                      0          
   72    39        INIT_FCALL                                               'var_export'
         40        SEND_VAR                                                 !0
         41        DO_ICALL                                                 
         42      > RETURN                                                   1


Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 15
Branch analysis from position: 4
2 jumps found. (Code = 125) Position 1 = 9, Position 2 = 14
Branch analysis from position: 9
2 jumps found. (Code = 126) Position 1 = 10, Position 2 = 14
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
Branch analysis from position: 15
filename:       /in/JLi2f
function name:  {closure}
number of ops:  16
compiled vars:  !0 = $data, !1 = $nat_ksort_r, !2 = $item
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   63     0  E >   RECV                                             !0      
          1        BIND_STATIC                                              !1
   64     2        TYPE_CHECK                                  128          !0
          3      > JMPZ                                                     ~3, ->15
   65     4    >   INIT_FCALL                                               'ksort'
          5        SEND_REF                                                 !0
          6        SEND_VAL                                                 6
          7        DO_ICALL                                                 
   66     8      > FE_RESET_RW                                      $5      !0, ->14
          9    > > FE_FETCH_RW                                              $5, !2, ->14
   67    10    >   INIT_DYNAMIC_CALL                                        !1
         11        SEND_VAR_EX                                              !2
         12        DO_FCALL                                      0          
   66    13      > JMP                                                      ->9
         14    >   FE_FREE                                                  $5
   70    15    > > RETURN                                                   null

End of Dynamic Function 0

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
136.02 ms | 1004 KiB | 15 Q