3v4l.org

run code in 500+ 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' => [], ] ]; function nat_ksort_r(array &$data): void { if (is_array($data)) { ksort($data, SORT_NATURAL); array_walk($data, __METHOD__); } } 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/sWY4u
function name:  (null)
number of ops:  40
compiled vars:  !0 = $array
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    8     0  E >   CAST                                              8  ~1      <array>
          1        INIT_ARRAY                                           ~2      ~1, 'file_2.mp4'
          2        CAST                                              8  ~3      <array>
          3        ADD_ARRAY_ELEMENT                                    ~2      ~3, 'file_1.mp4'
          4        INIT_ARRAY                                           ~4      ~2, 'subdir_1'
          5        INIT_ARRAY                                           ~5      ~4, 'dir_3'
          6        CAST                                              8  ~6      <array>
          7        INIT_ARRAY                                           ~7      ~6, 'file_6.mp4'
          8        CAST                                              8  ~8      <array>
          9        ADD_ARRAY_ELEMENT                                    ~7      ~8, 'file_9.mp4'
         10        CAST                                              8  ~9      <array>
         11        ADD_ARRAY_ELEMENT                                    ~7      ~9, 'file_7.mp4'
         12        CAST                                              8  ~10     <array>
         13        ADD_ARRAY_ELEMENT                                    ~7      ~10, 'file_17.mp4'
         14        INIT_ARRAY                                           ~11     ~7, 'subdir_2'
         15        CAST                                              8  ~12     <array>
         16        INIT_ARRAY                                           ~13     ~12, 'file_8.mp4'
         17        ADD_ARRAY_ELEMENT                                    ~11     ~13, 'subdir_1'
         18        ADD_ARRAY_ELEMENT                                    ~5      ~11, 'dir_1'
         19        INIT_ARRAY                                           ~14     ~5, 'first_level'
         20        CAST                                              8  ~15     <array>
         21        INIT_ARRAY                                           ~16     ~15, 'file_5.mp4'
         22        CAST                                              8  ~17     <array>
         23        ADD_ARRAY_ELEMENT                                    ~16     ~17, 'file_19.mp4'
         24        CAST                                              8  ~18     <array>
         25        ADD_ARRAY_ELEMENT                                    ~16     ~18, 'file_33.mp4'
         26        INIT_ARRAY                                           ~19     ~16, 'subdir_1'
         27        INIT_ARRAY                                           ~20     ~19, 'dir_7'
         28        ADD_ARRAY_ELEMENT                                    ~20     <array>, 'dir_13'
         29        ADD_ARRAY_ELEMENT                                    ~20     <array>, 'dir_101'
         30        ADD_ARRAY_ELEMENT                                    ~20     <array>, 'dir_66'
         31        ADD_ARRAY_ELEMENT                                    ~14     ~20, 'fake_level'
    3    32        ASSIGN                                                       !0, ~14
   71    33        INIT_FCALL                                                   'nat_ksort_r'
         34        SEND_REF                                                     !0
         35        DO_FCALL                                          0          
   72    36        INIT_FCALL                                                   'var_export'
         37        SEND_VAR                                                     !0
         38        DO_ICALL                                                     
         39      > RETURN                                                       1

Function nat_ksort_r:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 11
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
filename:       /in/sWY4u
function name:  nat_ksort_r
number of ops:  12
compiled vars:  !0 = $data
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   63     0  E >   RECV                                                 !0      
   65     1        TYPE_CHECK                                      128          !0
          2      > JMPZ                                                         ~1, ->11
   66     3    >   INIT_FCALL                                                   'ksort'
          4        SEND_REF                                                     !0
          5        SEND_VAL                                                     6
          6        DO_ICALL                                                     
   67     7        INIT_FCALL                                                   'array_walk'
          8        SEND_REF                                                     !0
          9        SEND_VAL                                                     'nat_ksort_r'
         10        DO_ICALL                                                     
   69    11    > > RETURN                                                       null

End of function nat_ksort_r

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
166.07 ms | 1831 KiB | 17 Q