3v4l.org

run code in 500+ PHP versions simultaneously
<?php $a = [ [ 'position' => 0, 'color' => 'violet' ], [ 'position' => 2, 'color' => 'red' ], [ 'position' => 5, 'color' => 'green' ], ]; $b = [ [ 'color' => 'yellow' ], [ 'color' => 'orange' ], [ 'color' => 'pink' ], [ 'color' => 'blue' ], ]; $pos = array_column($a, "color", "position"); $count = count($pos) + count($b); $j = 0; for($i=0; $i<$count-1; $i++){ if(!isset($pos[$i])){ $pos[$i] = $b[$j]; $j++; }else{ $pos[$i] = [$pos[$i]]; } } ksort($pos); var_dump($pos);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 28
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 31, Position 2 = 15
Branch analysis from position: 31
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 23
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
2 jumps found. (Code = 44) Position 1 = 31, Position 2 = 15
Branch analysis from position: 31
Branch analysis from position: 15
Branch analysis from position: 23
2 jumps found. (Code = 44) Position 1 = 31, Position 2 = 15
Branch analysis from position: 31
Branch analysis from position: 15
filename:       /in/3uPM3
function name:  (null)
number of ops:  38
compiled vars:  !0 = $a, !1 = $b, !2 = $pos, !3 = $count, !4 = $j, !5 = $i
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
   18     1        ASSIGN                                                       !1, <array>
   33     2        INIT_FCALL                                                   'array_column'
          3        SEND_VAR                                                     !0
          4        SEND_VAL                                                     'color'
          5        SEND_VAL                                                     'position'
          6        DO_ICALL                                             $8      
          7        ASSIGN                                                       !2, $8
   35     8        COUNT                                                ~10     !2
          9        COUNT                                                ~11     !1
         10        ADD                                                  ~12     ~10, ~11
         11        ASSIGN                                                       !3, ~12
   36    12        ASSIGN                                                       !4, 0
   38    13        ASSIGN                                                       !5, 0
         14      > JMP                                                          ->28
   39    15    >   ISSET_ISEMPTY_DIM_OBJ                             0  ~16     !2, !5
         16        BOOL_NOT                                             ~17     ~16
         17      > JMPZ                                                         ~17, ->23
   40    18    >   FETCH_DIM_R                                          ~19     !1, !4
         19        ASSIGN_DIM                                                   !2, !5
         20        OP_DATA                                                      ~19
   41    21        PRE_INC                                                      !4
   39    22      > JMP                                                          ->27
   43    23    >   FETCH_DIM_R                                          ~22     !2, !5
         24        INIT_ARRAY                                           ~23     ~22
         25        ASSIGN_DIM                                                   !2, !5
         26        OP_DATA                                                      ~23
   38    27    >   PRE_INC                                                      !5
         28    >   SUB                                                  ~25     !3, 1
         29        IS_SMALLER                                                   !5, ~25
         30      > JMPNZ                                                        ~26, ->15
   46    31    >   INIT_FCALL                                                   'ksort'
         32        SEND_REF                                                     !2
         33        DO_ICALL                                                     
   48    34        INIT_FCALL                                                   'var_dump'
         35        SEND_VAR                                                     !2
         36        DO_ICALL                                                     
         37      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
222.68 ms | 2263 KiB | 16 Q