3v4l.org

run code in 500+ PHP versions simultaneously
<?php $result = [ ['color' => 'black', 'price' => 15], ['color' => 'white', 'price' => 25], ['color' => 'green', 'price' => 35], ['color' => 'black', 'price' => 45], ]; // Truth: A mysql result set object ($result) is iterable so you can just feed it to a foreach loop! $a = []; foreach ($result as $row) { $a[$row['color']]['price'] = ($a[$row['color']]['price'] ?? 0) + $row['price']; } var_export($a);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 3, Position 2 = 16
Branch analysis from position: 3
2 jumps found. (Code = 78) Position 1 = 4, Position 2 = 16
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 3
Branch analysis from position: 3
Branch analysis from position: 16
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 16
filename:       /in/lviAI
function name:  (null)
number of ops:  21
compiled vars:  !0 = $result, !1 = $a, !2 = $row
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, <array>
   12     1        ASSIGN                                                       !1, <array>
   13     2      > FE_RESET_R                                           $5      !0, ->16
          3    > > FE_FETCH_R                                                   $5, !2, ->16
   14     4    >   FETCH_DIM_R                                          ~6      !2, 'color'
          5        FETCH_DIM_R                                          ~9      !2, 'color'
          6        FETCH_DIM_IS                                         ~10     !1, ~9
          7        FETCH_DIM_IS                                         ~11     ~10, 'price'
          8        COALESCE                                             ~12     ~11
          9        QM_ASSIGN                                            ~12     0
         10        FETCH_DIM_R                                          ~13     !2, 'price'
         11        ADD                                                  ~14     ~12, ~13
         12        FETCH_DIM_W                                          $7      !1, ~6
         13        ASSIGN_DIM                                                   $7, 'price'
         14        OP_DATA                                                      ~14
   13    15      > JMP                                                          ->3
         16    >   FE_FREE                                                      $5
   17    17        INIT_FCALL                                                   'var_export'
         18        SEND_VAR                                                     !1
         19        DO_ICALL                                                     
         20      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
216.66 ms | 2136 KiB | 14 Q