3v4l.org

run code in 300+ PHP versions simultaneously
<?php $Rules = array( "Outlook" => array("Sunny" => array("No" => 2), "Overcast" => array("Yes" => 1), "Rainy" => array("Yes" => 1) ), "Temp" => array("Hot" => array("No" => 2, "Yes" => 1), "Mild" => array("Yes" => 1) ) ); $filling = array(); $fill_play = array(); foreach($Rules as $key => $value){ $in = 0; $in_play = 0; foreach($value as $keys => $values){ $key_value = array_keys($values); for($j = 0; $j < count($key_value); $j++){ for($i = 0; $i < $values[$key_value[$j]]; $i++){ $fill_play[$key][$in_play++] = $key_value[$j]; $filling[$key][$in++] = $keys; } } } } $yes_no = array(); for($i = 0; $i < 4; $i++) $yes_no[$i] = 0; foreach($fill_play as $key => $value){ for($i = 0; $i < 4; $i++){ if($value[$i] == 'No') $yes_no[$i] -= 1; else $yes_no[$i] += 1; } } foreach($yes_no as $key => $value){ if($value >= 0) $filling['Play'][$key] = 'Yes'; else $filling['Play'][$key] = 'No'; } echo '<pre>'; print_r($filling); echo '</pre>'; ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 40
Branch analysis from position: 4
2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 40
Branch analysis from position: 5
2 jumps found. (Code = 77) Position 1 = 9, Position 2 = 38
Branch analysis from position: 9
2 jumps found. (Code = 78) Position 1 = 10, Position 2 = 38
Branch analysis from position: 10
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 17
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 19
Branch analysis from position: 33
2 jumps found. (Code = 44) Position 1 = 37, Position 2 = 17
Branch analysis from position: 37
Branch analysis from position: 17
Branch analysis from position: 19
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 19
Branch analysis from position: 33
Branch analysis from position: 19
Branch analysis from position: 38
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 38
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 47
Branch analysis from position: 47
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 44
Branch analysis from position: 49
2 jumps found. (Code = 77) Position 1 = 50, Position 2 = 66
Branch analysis from position: 50
2 jumps found. (Code = 78) Position 1 = 51, Position 2 = 66
Branch analysis from position: 51
1 jumps found. (Code = 42) Position 1 = 63
Branch analysis from position: 63
2 jumps found. (Code = 44) Position 1 = 65, Position 2 = 54
Branch analysis from position: 65
1 jumps found. (Code = 42) Position 1 = 50
Branch analysis from position: 50
Branch analysis from position: 54
2 jumps found. (Code = 43) Position 1 = 57, Position 2 = 60
Branch analysis from position: 57
1 jumps found. (Code = 42) Position 1 = 62
Branch analysis from position: 62
2 jumps found. (Code = 44) Position 1 = 65, Position 2 = 54
Branch analysis from position: 65
Branch analysis from position: 54
Branch analysis from position: 60
2 jumps found. (Code = 44) Position 1 = 65, Position 2 = 54
Branch analysis from position: 65
Branch analysis from position: 54
Branch analysis from position: 66
2 jumps found. (Code = 77) Position 1 = 68, Position 2 = 80
Branch analysis from position: 68
2 jumps found. (Code = 78) Position 1 = 69, Position 2 = 80
Branch analysis from position: 69
2 jumps found. (Code = 43) Position 1 = 72, Position 2 = 76
Branch analysis from position: 72
1 jumps found. (Code = 42) Position 1 = 79
Branch analysis from position: 79
1 jumps found. (Code = 42) Position 1 = 68
Branch analysis from position: 68
Branch analysis from position: 76
1 jumps found. (Code = 42) Position 1 = 68
Branch analysis from position: 68
Branch analysis from position: 80
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 80
Branch analysis from position: 66
Branch analysis from position: 44
2 jumps found. (Code = 44) Position 1 = 49, Position 2 = 44
Branch analysis from position: 49
Branch analysis from position: 44
Branch analysis from position: 40
filename:       /in/BmBmn
function name:  (null)
number of ops:  87
compiled vars:  !0 = $Rules, !1 = $filling, !2 = $fill_play, !3 = $value, !4 = $key, !5 = $in, !6 = $in_play, !7 = $values, !8 = $keys, !9 = $key_value, !10 = $j, !11 = $i, !12 = $yes_no
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, <array>
   14     1        ASSIGN                                                   !1, <array>
   15     2        ASSIGN                                                   !2, <array>
   17     3      > FE_RESET_R                                       $16     !0, ->40
          4    > > FE_FETCH_R                                       ~17     $16, !3, ->40
          5    >   ASSIGN                                                   !4, ~17
   18     6        ASSIGN                                                   !5, 0
   19     7        ASSIGN                                                   !6, 0
   20     8      > FE_RESET_R                                       $21     !3, ->38
          9    > > FE_FETCH_R                                       ~22     $21, !7, ->38
         10    >   ASSIGN                                                   !8, ~22
   21    11        INIT_FCALL                                               'array_keys'
         12        SEND_VAR                                                 !7
         13        DO_ICALL                                         $24     
         14        ASSIGN                                                   !9, $24
   22    15        ASSIGN                                                   !10, 0
         16      > JMP                                                      ->34
   23    17    >   ASSIGN                                                   !11, 0
         18      > JMP                                                      ->29
   24    19    >   POST_INC                                         ~29     !6
         20        FETCH_DIM_R                                      ~31     !9, !10
         21        FETCH_DIM_W                                      $28     !2, !4
         22        ASSIGN_DIM                                               $28, ~29
         23        OP_DATA                                                  ~31
   25    24        POST_INC                                         ~33     !5
         25        FETCH_DIM_W                                      $32     !1, !4
         26        ASSIGN_DIM                                               $32, ~33
         27        OP_DATA                                                  !8
   23    28        PRE_INC                                                  !11
         29    >   FETCH_DIM_R                                      ~36     !9, !10
         30        FETCH_DIM_R                                      ~37     !7, ~36
         31        IS_SMALLER                                               !11, ~37
         32      > JMPNZ                                                    ~38, ->19
   22    33    >   PRE_INC                                                  !10
         34    >   COUNT                                            ~40     !9
         35        IS_SMALLER                                               !10, ~40
         36      > JMPNZ                                                    ~41, ->17
   20    37    > > JMP                                                      ->9
         38    >   FE_FREE                                                  $21
   17    39      > JMP                                                      ->4
         40    >   FE_FREE                                                  $16
   30    41        ASSIGN                                                   !12, <array>
   31    42        ASSIGN                                                   !11, 0
         43      > JMP                                                      ->47
   32    44    >   ASSIGN_DIM                                               !12, !11
         45        OP_DATA                                                  0
   31    46        PRE_INC                                                  !11
         47    >   IS_SMALLER                                               !11, 4
         48      > JMPNZ                                                    ~46, ->44
   34    49    > > FE_RESET_R                                       $47     !2, ->66
         50    > > FE_FETCH_R                                       ~48     $47, !3, ->66
         51    >   ASSIGN                                                   !4, ~48
   35    52        ASSIGN                                                   !11, 0
         53      > JMP                                                      ->63
   36    54    >   FETCH_DIM_R                                      ~51     !3, !11
         55        IS_EQUAL                                                 ~51, 'No'
         56      > JMPZ                                                     ~52, ->60
   37    57    >   ASSIGN_DIM_OP                -=               2          !12, !11
         58        OP_DATA                                                  1
   36    59      > JMP                                                      ->62
   39    60    >   ASSIGN_DIM_OP                +=               1          !12, !11
         61        OP_DATA                                                  1
   35    62    >   PRE_INC                                                  !11
         63    >   IS_SMALLER                                               !11, 4
         64      > JMPNZ                                                    ~56, ->54
   34    65    > > JMP                                                      ->50
         66    >   FE_FREE                                                  $47
   43    67      > FE_RESET_R                                       $57     !12, ->80
         68    > > FE_FETCH_R                                       ~58     $57, !3, ->80
         69    >   ASSIGN                                                   !4, ~58
   44    70        IS_SMALLER_OR_EQUAL                                      0, !3
         71      > JMPZ                                                     ~60, ->76
   45    72    >   FETCH_DIM_W                                      $61     !1, 'Play'
         73        ASSIGN_DIM                                               $61, !4
         74        OP_DATA                                                  'Yes'
   44    75      > JMP                                                      ->79
   47    76    >   FETCH_DIM_W                                      $63     !1, 'Play'
         77        ASSIGN_DIM                                               $63, !4
         78        OP_DATA                                                  'No'
   43    79    > > JMP                                                      ->68
         80    >   FE_FREE                                                  $57
   50    81        ECHO                                                     '%3Cpre%3E'
   51    82        INIT_FCALL                                               'print_r'
         83        SEND_VAR                                                 !1
         84        DO_ICALL                                                 
   52    85        ECHO                                                     '%3C%2Fpre%3E'
   53    86      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
136.3 ms | 1008 KiB | 15 Q