3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ ['apn' => 345345345, 'sqft' => 1200, 'address' => '323 Pacific Ave.'], ['apn' => 345345342, 'sqft' => 1421, 'address' => '324 Pacific Ave.'], ['apn' => 345345346, 'sqft' => 1012, 'address' => '325 Pacific Ave.'], ['apn' => 345345347, 'sqft' => 1093, 'address' => '328 Pacific Ave.'], ['apn' => 345345353, 'sqft' => 1121, 'address' => '12 Lincoln Ave.'], ['apn' => 345345351, 'sqft' => 1643, 'address' => '13 Lincoln Ave.'], ['apn' => 345345352, 'sqft' => 1222, 'address' => '14 Lincoln Ave.'] ]; $isEvens = []; $numbers = []; $streets = []; foreach ($array as ['address' => $a]) { if (sscanf($a, "%s %[^\n]", $n, $s) === 2) { $isEvens[] = !((int)$n & 1); $numbers[] = $n; $streets[] = $s; } else { $isEvens[] = !((int)$a & 1); $numbers[] = $a; $streets[] = $a; } } array_multisort( $streets, $isEvens, $numbers, $array ); var_export($array);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 5, Position 2 = 37
Branch analysis from position: 5
2 jumps found. (Code = 78) Position 1 = 6, Position 2 = 37
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 27
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 36
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
Branch analysis from position: 27
1 jumps found. (Code = 42) Position 1 = 5
Branch analysis from position: 5
Branch analysis from position: 37
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 37
filename:       /in/D9GcK
function name:  (null)
number of ops:  48
compiled vars:  !0 = $array, !1 = $isEvens, !2 = $numbers, !3 = $streets, !4 = $a, !5 = $n, !6 = $s
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
   13     1        ASSIGN                                                   !1, <array>
   14     2        ASSIGN                                                   !2, <array>
   15     3        ASSIGN                                                   !3, <array>
   16     4      > FE_RESET_R                                       $11     !0, ->37
          5    > > FE_FETCH_R                                               $11, $12, ->37
          6    >   FETCH_LIST_R                                     $13     $12, 'address'
          7        ASSIGN                                                   !4, $13
          8        FREE                                                     $12
   17     9        INIT_FCALL                                               'sscanf'
         10        SEND_VAR                                                 !4
         11        SEND_VAL                                                 '%25s+%25%5B%5E%0A%5D'
         12        SEND_REF                                                 !5
         13        SEND_REF                                                 !6
         14        DO_ICALL                                         $15     
         15        IS_IDENTICAL                                             $15, 2
         16      > JMPZ                                                     ~16, ->27
   18    17    >   CAST                                          4  ~18     !5
         18        BW_AND                                           ~19     ~18, 1
         19        BOOL_NOT                                         ~20     ~19
         20        ASSIGN_DIM                                               !1
         21        OP_DATA                                                  ~20
   19    22        ASSIGN_DIM                                               !2
         23        OP_DATA                                                  !5
   20    24        ASSIGN_DIM                                               !3
         25        OP_DATA                                                  !6
   17    26      > JMP                                                      ->36
   22    27    >   CAST                                          4  ~24     !4
         28        BW_AND                                           ~25     ~24, 1
         29        BOOL_NOT                                         ~26     ~25
         30        ASSIGN_DIM                                               !1
         31        OP_DATA                                                  ~26
   23    32        ASSIGN_DIM                                               !2
         33        OP_DATA                                                  !4
   24    34        ASSIGN_DIM                                               !3
         35        OP_DATA                                                  !4
   16    36    > > JMP                                                      ->5
         37    >   FE_FREE                                                  $11
   28    38        INIT_FCALL                                               'array_multisort'
   29    39        SEND_REF                                                 !3
   30    40        SEND_REF                                                 !1
   31    41        SEND_REF                                                 !2
   32    42        SEND_REF                                                 !0
   28    43        DO_ICALL                                                 
   34    44        INIT_FCALL                                               'var_export'
         45        SEND_VAR                                                 !0
         46        DO_ICALL                                                 
         47      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
149.67 ms | 1017 KiB | 16 Q