3v4l.org

run code in 300+ PHP versions simultaneously
<?php $agents = [ (object)["id"=> 301,"name"=> "Agent 1"], (object)["id"=> 303,"name"=> "Agent 2"], (object)["id"=> 301,"name"=> "Agent 3"], (object)["id"=> 305,"name"=> "Agent 4"], (object)["id"=> 306,"name"=> "Agent 5"], (object)["id"=> 303,"name"=> "Agent 6"] ]; $locations = [ (object)["xid"=> 148,"location_name"=> "USA"], (object)["xid"=> 149,"location_name"=> "CHINA"], (object)["xid"=> 153,"location_name"=> "GERMANY"], (object)["xid"=> 156,"location_name"=> "CANADA"], (object)["xid"=> 167,"location_name"=> "SINGAPORE"], (object)["xid"=> 0,"location_name"=> "No Location"] ]; $records = [ (object)["agent_id"=> 301,"location_id"=> 156,"total"=> 10000], (object)["agent_id"=> 303,"location_id"=> 149,"total"=> 13000], (object)["agent_id"=> 301,"location_id"=> 156,"total"=> 10000], (object)["agent_id"=> 305,"location_id"=> 0,"total"=> 10000], (object)["agent_id"=> 306,"location_id"=> 148,"total"=> 10000], (object)["agent_id"=> 303,"location_id"=> 0,"total"=> 10000] ]; foreach($agents as $agent){ $agent->locations = []; foreach($locations as $location){ $location = clone $location; $location->transactions = []; foreach($records as $r){ if($r->agent_id == $agent->id && $location->xid == $r->location_id){ $location->transactions[] = $r; } } $agent->locations[] = $location; } } print_r($agents);

Abusive script

This script was stopped while abusing our resources

Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 40, Position 2 = 71
Branch analysis from position: 40
2 jumps found. (Code = 78) Position 1 = 41, Position 2 = 71
Branch analysis from position: 41
2 jumps found. (Code = 77) Position 1 = 44, Position 2 = 69
Branch analysis from position: 44
2 jumps found. (Code = 78) Position 1 = 45, Position 2 = 69
Branch analysis from position: 45
2 jumps found. (Code = 77) Position 1 = 50, Position 2 = 64
Branch analysis from position: 50
2 jumps found. (Code = 78) Position 1 = 51, Position 2 = 64
Branch analysis from position: 51
2 jumps found. (Code = 46) Position 1 = 55, Position 2 = 59
Branch analysis from position: 55
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 63
Branch analysis from position: 60
1 jumps found. (Code = 42) Position 1 = 50
Branch analysis from position: 50
Branch analysis from position: 63
Branch analysis from position: 59
Branch analysis from position: 64
1 jumps found. (Code = 42) Position 1 = 44
Branch analysis from position: 44
Branch analysis from position: 64
Branch analysis from position: 69
1 jumps found. (Code = 42) Position 1 = 40
Branch analysis from position: 40
Branch analysis from position: 69
Branch analysis from position: 71
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 71
filename:       /in/gNXhg
function name:  (null)
number of ops:  76
compiled vars:  !0 = $agents, !1 = $locations, !2 = $records, !3 = $agent, !4 = $location, !5 = $r
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    4     0  E >   CAST                                          8  ~6      <array>
          1        INIT_ARRAY                                       ~7      ~6
    5     2        CAST                                          8  ~8      <array>
          3        ADD_ARRAY_ELEMENT                                ~7      ~8
    6     4        CAST                                          8  ~9      <array>
          5        ADD_ARRAY_ELEMENT                                ~7      ~9
    7     6        CAST                                          8  ~10     <array>
          7        ADD_ARRAY_ELEMENT                                ~7      ~10
    8     8        CAST                                          8  ~11     <array>
          9        ADD_ARRAY_ELEMENT                                ~7      ~11
    9    10        CAST                                          8  ~12     <array>
         11        ADD_ARRAY_ELEMENT                                ~7      ~12
    3    12        ASSIGN                                                   !0, ~7
   14    13        CAST                                          8  ~14     <array>
         14        INIT_ARRAY                                       ~15     ~14
   15    15        CAST                                          8  ~16     <array>
         16        ADD_ARRAY_ELEMENT                                ~15     ~16
   16    17        CAST                                          8  ~17     <array>
         18        ADD_ARRAY_ELEMENT                                ~15     ~17
   17    19        CAST                                          8  ~18     <array>
         20        ADD_ARRAY_ELEMENT                                ~15     ~18
   18    21        CAST                                          8  ~19     <array>
         22        ADD_ARRAY_ELEMENT                                ~15     ~19
   19    23        CAST                                          8  ~20     <array>
         24        ADD_ARRAY_ELEMENT                                ~15     ~20
   13    25        ASSIGN                                                   !1, ~15
   24    26        CAST                                          8  ~22     <array>
         27        INIT_ARRAY                                       ~23     ~22
   25    28        CAST                                          8  ~24     <array>
         29        ADD_ARRAY_ELEMENT                                ~23     ~24
   26    30        CAST                                          8  ~25     <array>
         31        ADD_ARRAY_ELEMENT                                ~23     ~25
   27    32        CAST                                          8  ~26     <array>
         33        ADD_ARRAY_ELEMENT                                ~23     ~26
   28    34        CAST                                          8  ~27     <array>
         35        ADD_ARRAY_ELEMENT                                ~23     ~27
   29    36        CAST                                          8  ~28     <array>
         37        ADD_ARRAY_ELEMENT                                ~23     ~28
   23    38        ASSIGN                                                   !2, ~23
   32    39      > FE_RESET_R                                       $30     !0, ->71
         40    > > FE_FETCH_R                                               $30, !3, ->71
   33    41    >   ASSIGN_OBJ                                               !3, 'locations'
         42        OP_DATA                                                  <array>
   34    43      > FE_RESET_R                                       $32     !1, ->69
         44    > > FE_FETCH_R                                               $32, !4, ->69
   35    45    >   CLONE                                            ~33     !4
         46        ASSIGN                                                   !4, ~33
   36    47        ASSIGN_OBJ                                               !4, 'transactions'
         48        OP_DATA                                                  <array>
   37    49      > FE_RESET_R                                       $36     !2, ->64
         50    > > FE_FETCH_R                                               $36, !5, ->64
   38    51    >   FETCH_OBJ_R                                      ~37     !5, 'agent_id'
         52        FETCH_OBJ_R                                      ~38     !3, 'id'
         53        IS_EQUAL                                         ~39     ~37, ~38
         54      > JMPZ_EX                                          ~39     ~39, ->59
         55    >   FETCH_OBJ_R                                      ~40     !4, 'xid'
         56        FETCH_OBJ_R                                      ~41     !5, 'location_id'
         57        IS_EQUAL                                         ~42     ~40, ~41
         58        BOOL                                             ~39     ~42
         59    > > JMPZ                                                     ~39, ->63
   39    60    >   FETCH_OBJ_W                                      $43     !4, 'transactions'
         61        ASSIGN_DIM                                               $43
         62        OP_DATA                                                  !5
   37    63    > > JMP                                                      ->50
         64    >   FE_FREE                                                  $36
   43    65        FETCH_OBJ_W                                      $45     !3, 'locations'
         66        ASSIGN_DIM                                               $45
         67        OP_DATA                                                  !4
   34    68      > JMP                                                      ->44
         69    >   FE_FREE                                                  $32
   32    70      > JMP                                                      ->40
         71    >   FE_FREE                                                  $30
   47    72        INIT_FCALL                                               'print_r'
         73        SEND_VAR                                                 !0
         74        DO_ICALL                                                 
         75      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
156.67 ms | 1015 KiB | 14 Q