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);
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array ( 'fake_level' => array ( 'dir_7' => array ( 'subdir_1' => array ( 'file_5.mp4' => (object) array( 'name' => 'file_5.mp4', 'size' => 56, 'active' => true, ), 'file_19.mp4' => (object) array( 'name' => 'file_19.mp4', 'size' => 77, 'active' => false, ), 'file_33.mp4' => (object) array( 'name' => 'file_33.mp4', 'size' => 81, 'active' => true, ), ), ), 'dir_13' => array ( ), 'dir_66' => array ( ), 'dir_101' => array ( ), ), 'first_level' => array ( 'dir_1' => array ( 'subdir_1' => array ( 'file_8.mp4' => (object) array( 'name' => 'file_8.mp4', ), ), 'subdir_2' => array ( 'file_6.mp4' => (object) array( 'name' => 'file_6.mp4', ), 'file_7.mp4' => (object) array( 'name' => 'file_7.mp4', ), 'file_9.mp4' => (object) array( 'name' => 'file_9.mp4', ), 'file_17.mp4' => (object) array( 'name' => 'file_17.mp4', ), ), ), 'dir_3' => array ( 'subdir_1' => array ( 'file_1.mp4' => (object) array( 'name' => 'file_1.mp4', ), 'file_2.mp4' => (object) array( 'name' => 'file_2.mp4', ), ), ), ), )

preferences:
91.42 ms | 412 KiB | 5 Q