3v4l.org

run code in 500+ PHP versions simultaneously
<?php $array = [ 495 => (object)['date' => '2009-10-31 18:24:09'], 582 => (object)['date' => '2010-2-11 12:01:42'], 121 => (object)['date' => '2008-12-1 18:24:09'], 333 => (object)['date' => '2019-9-9 15:15:15'], 987 => (object)['date' => '2009-2-20 6:06:33'], ]; uasort( $array, function($a, $b) { echo "compare\n"; return strtotime($a->date) <=> strtotime($b->date); } ); var_export($array); echo "\n---\n"; $array = [ 495 => (object)['date' => '2009-10-31 18:24:09'], 582 => (object)['date' => '2010-2-11 12:01:42'], 121 => (object)['date' => '2008-12-1 18:24:09'], 333 => (object)['date' => '2019-9-9 15:15:15'], 987 => (object)['date' => '2009-2-20 6:06:33'], ]; $dates = array_map('strtotime', array_column($array, 'date')); array_multisort($dates, $array); var_export($array);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/AVdJb
function name:  (null)
number of ops:  48
compiled vars:  !0 = $array, !1 = $dates
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    4     0  E >   CAST                                              8  ~2      <array>
          1        INIT_ARRAY                                           ~3      ~2, 495
          2        CAST                                              8  ~4      <array>
          3        ADD_ARRAY_ELEMENT                                    ~3      ~4, 582
          4        CAST                                              8  ~5      <array>
          5        ADD_ARRAY_ELEMENT                                    ~3      ~5, 121
          6        CAST                                              8  ~6      <array>
          7        ADD_ARRAY_ELEMENT                                    ~3      ~6, 333
          8        CAST                                              8  ~7      <array>
          9        ADD_ARRAY_ELEMENT                                    ~3      ~7, 987
    3    10        ASSIGN                                                       !0, ~3
   11    11        INIT_FCALL                                                   'uasort'
   12    12        SEND_REF                                                     !0
   13    13        DECLARE_LAMBDA_FUNCTION                              ~9      [0]
   16    14        SEND_VAL                                                     ~9
   11    15        DO_ICALL                                                     
   19    16        INIT_FCALL                                                   'var_export'
         17        SEND_VAR                                                     !0
         18        DO_ICALL                                                     
   21    19        ECHO                                                         '%0A---%0A'
   24    20        CAST                                              8  ~12     <array>
         21        INIT_ARRAY                                           ~13     ~12, 495
         22        CAST                                              8  ~14     <array>
         23        ADD_ARRAY_ELEMENT                                    ~13     ~14, 582
         24        CAST                                              8  ~15     <array>
         25        ADD_ARRAY_ELEMENT                                    ~13     ~15, 121
         26        CAST                                              8  ~16     <array>
         27        ADD_ARRAY_ELEMENT                                    ~13     ~16, 333
         28        CAST                                              8  ~17     <array>
         29        ADD_ARRAY_ELEMENT                                    ~13     ~17, 987
   23    30        ASSIGN                                                       !0, ~13
   31    31        INIT_FCALL                                                   'array_map'
         32        SEND_VAL                                                     'strtotime'
         33        INIT_FCALL                                                   'array_column'
         34        SEND_VAR                                                     !0
         35        SEND_VAL                                                     'date'
         36        DO_ICALL                                             $19     
         37        SEND_VAR                                                     $19
         38        DO_ICALL                                             $20     
         39        ASSIGN                                                       !1, $20
   32    40        INIT_FCALL                                                   'array_multisort'
         41        SEND_REF                                                     !1
         42        SEND_REF                                                     !0
         43        DO_ICALL                                                     
   33    44        INIT_FCALL                                                   'var_export'
         45        SEND_VAR                                                     !0
         46        DO_ICALL                                                     
         47      > RETURN                                                       1


Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/AVdJb
function name:  {closure:/in/AVdJb:13}
number of ops:  14
compiled vars:  !0 = $a, !1 = $b
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
   13     0  E >   RECV                                                 !0      
          1        RECV                                                 !1      
   14     2        ECHO                                                         'compare%0A'
   15     3        INIT_FCALL                                                   'strtotime'
          4        FETCH_OBJ_R                                          ~2      !0, 'date'
          5        SEND_VAL                                                     ~2
          6        DO_ICALL                                             $3      
          7        INIT_FCALL                                                   'strtotime'
          8        FETCH_OBJ_R                                          ~4      !1, 'date'
          9        SEND_VAL                                                     ~4
         10        DO_ICALL                                             $5      
         11        SPACESHIP                                            ~6      $3, $5
         12      > RETURN                                                       ~6
   16    13*     > RETURN                                                       null

End of Dynamic Function 0

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
167.95 ms | 2170 KiB | 19 Q