3v4l.org

run code in 300+ PHP versions simultaneously
<?php $phoneNumbers = array('41N XR8 L143','CRCCCRZZ65','77U.641.2lL7','N9N 481N117','I00F7CIKOK','A7Z.Z3M.AAM0','G73-V1N-9572','8N5 54WECN85','6BF97B7711','F2W W0718W1','E16 EGTj6JE','EZNGUE2Q0E','6DI.6DW.D0D2','88W 6RW 0HWF'); foreach($phoneNumbers AS $phoneNumber) { $newPhoneNumber = ""; for($j=0;$j<strlen($phoneNumber);$j++){ $number = $phoneNumber[$j]; if(!is_numeric($number)){ switch($number){ case "A":; case "B":; case "C": $number = 2;break; case "D":; case "E":; case "F": $number = 3;break; case "G":; case "H":; case "I": $number = 4;break; case "J":; case "K":; case "L": $number = 5;break; case "M":; case "N":; case "O": $number = 6;break; case "P":; case "Q":; case "R":; case "S": $number = 7;break; case "T":; case "U":; case "V": $number = 8;break; case "W":; case "X":; case "Y":; case "Z": $number = 9;break; default : $number = ""; } } $newPhoneNumber = $newPhoneNumber.$number; } $rank1 = substr($newPhoneNumber,0,3); $rank2 = substr($newPhoneNumber,3,3); $rank3 = substr($newPhoneNumber,-4); $newPhoneNumbers[] = $rank1."-".$rank2."-".$rank3; } print ($newPhoneNumbers[0]);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 2, Position 2 = 114
Branch analysis from position: 2
2 jumps found. (Code = 78) Position 1 = 3, Position 2 = 114
Branch analysis from position: 3
1 jumps found. (Code = 42) Position 1 = 87
Branch analysis from position: 87
2 jumps found. (Code = 44) Position 1 = 90, Position 2 = 6
Branch analysis from position: 90
1 jumps found. (Code = 42) Position 1 = 2
Branch analysis from position: 2
Branch analysis from position: 6
2 jumps found. (Code = 43) Position 1 = 13, Position 2 = 84
Branch analysis from position: 13
28 jumps found. (Code = 188) Position 1 = 67, Position 2 = 67, Position 3 = 67, Position 4 = 69, Position 5 = 69, Position 6 = 69, Position 7 = 71, Position 8 = 71, Position 9 = 71, Position 10 = 73, Position 11 = 73, Position 12 = 73, Position 13 = 75, Position 14 = 75, Position 15 = 75, Position 16 = 77, Position 17 = 77, Position 18 = 77, Position 19 = 77, Position 20 = 79, Position 21 = 79, Position 22 = 79, Position 23 = 81, Position 24 = 81, Position 25 = 81, Position 26 = 81, Position 27 = 83, Position 28 = 14
Branch analysis from position: 67
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
2 jumps found. (Code = 44) Position 1 = 90, Position 2 = 6
Branch analysis from position: 90
Branch analysis from position: 6
Branch analysis from position: 67
Branch analysis from position: 67
Branch analysis from position: 69
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 69
Branch analysis from position: 69
Branch analysis from position: 71
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 71
Branch analysis from position: 71
Branch analysis from position: 73
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 73
Branch analysis from position: 73
Branch analysis from position: 75
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 75
Branch analysis from position: 75
Branch analysis from position: 77
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 77
Branch analysis from position: 77
Branch analysis from position: 77
Branch analysis from position: 79
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 79
Branch analysis from position: 79
Branch analysis from position: 81
1 jumps found. (Code = 42) Position 1 = 84
Branch analysis from position: 84
Branch analysis from position: 81
Branch analysis from position: 81
Branch analysis from position: 81
Branch analysis from position: 83
2 jumps found. (Code = 44) Position 1 = 90, Position 2 = 6
Branch analysis from position: 90
Branch analysis from position: 6
Branch analysis from position: 14
2 jumps found. (Code = 44) Position 1 = 16, Position 2 = 67
Branch analysis from position: 16
2 jumps found. (Code = 44) Position 1 = 18, Position 2 = 67
Branch analysis from position: 18
2 jumps found. (Code = 44) Position 1 = 20, Position 2 = 67
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 22, Position 2 = 69
Branch analysis from position: 22
2 jumps found. (Code = 44) Position 1 = 24, Position 2 = 69
Branch analysis from position: 24
2 jumps found. (Code = 44) Position 1 = 26, Position 2 = 69
Branch analysis from position: 26
2 jumps found. (Code = 44) Position 1 = 28, Position 2 = 71
Branch analysis from position: 28
2 jumps found. (Code = 44) Position 1 = 30, Position 2 = 71
Branch analysis from position: 30
2 jumps found. (Code = 44) Position 1 = 32, Position 2 = 71
Branch analysis from position: 32
2 jumps found. (Code = 44) Position 1 = 34, Position 2 = 73
Branch analysis from position: 34
2 jumps found. (Code = 44) Position 1 = 36, Position 2 = 73
Branch analysis from position: 36
2 jumps found. (Code = 44) Position 1 = 38, Position 2 = 73
Branch analysis from position: 38
2 jumps found. (Code = 44) Position 1 = 40, Position 2 = 75
Branch analysis from position: 40
2 jumps found. (Code = 44) Position 1 = 42, Position 2 = 75
Branch analysis from position: 42
2 jumps found. (Code = 44) Position 1 = 44, Position 2 = 75
Branch analysis from position: 44
2 jumps found. (Code = 44) Position 1 = 46, Position 2 = 77
Branch analysis from position: 46
2 jumps found. (Code = 44) Position 1 = 48, Position 2 = 77
Branch analysis from position: 48
2 jumps found. (Code = 44) Position 1 = 50, Position 2 = 77
Branch analysis from position: 50
2 jumps found. (Code = 44) Position 1 = 52, Position 2 = 77
Branch analysis from position: 52
2 jumps found. (Code = 44) Position 1 = 54, Position 2 = 79
Branch analysis from position: 54
2 jumps found. (Code = 44) Position 1 = 56, Position 2 = 79
Branch analysis from position: 56
2 jumps found. (Code = 44) Position 1 = 58, Position 2 = 79
Branch analysis from position: 58
2 jumps found. (Code = 44) Position 1 = 60, Position 2 = 81
Branch analysis from position: 60
2 jumps found. (Code = 44) Position 1 = 62, Position 2 = 81
Branch analysis from position: 62
2 jumps found. (Code = 44) Position 1 = 64, Position 2 = 81
Branch analysis from position: 64
2 jumps found. (Code = 44) Position 1 = 66, Position 2 = 81
Branch analysis from position: 66
1 jumps found. (Code = 42) Position 1 = 83
Branch analysis from position: 83
Branch analysis from position: 81
Branch analysis from position: 81
Branch analysis from position: 81
Branch analysis from position: 81
Branch analysis from position: 79
Branch analysis from position: 79
Branch analysis from position: 79
Branch analysis from position: 77
Branch analysis from position: 77
Branch analysis from position: 77
Branch analysis from position: 77
Branch analysis from position: 75
Branch analysis from position: 75
Branch analysis from position: 75
Branch analysis from position: 73
Branch analysis from position: 73
Branch analysis from position: 73
Branch analysis from position: 71
Branch analysis from position: 71
Branch analysis from position: 71
Branch analysis from position: 69
Branch analysis from position: 69
Branch analysis from position: 69
Branch analysis from position: 67
Branch analysis from position: 67
Branch analysis from position: 67
Branch analysis from position: 84
Branch analysis from position: 114
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 114
filename:       /in/LEgUc
function name:  (null)
number of ops:  118
compiled vars:  !0 = $phoneNumbers, !1 = $phoneNumber, !2 = $newPhoneNumber, !3 = $j, !4 = $number, !5 = $rank1, !6 = $rank2, !7 = $rank3, !8 = $newPhoneNumbers
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, <array>
    4     1      > FE_RESET_R                                       $10     !0, ->114
          2    > > FE_FETCH_R                                               $10, !1, ->114
    5     3    >   ASSIGN                                                   !2, ''
    6     4        ASSIGN                                                   !3, 0
          5      > JMP                                                      ->87
    7     6    >   FETCH_DIM_R                                      ~13     !1, !3
          7        ASSIGN                                                   !4, ~13
    9     8        INIT_FCALL                                               'is_numeric'
          9        SEND_VAR                                                 !4
         10        DO_ICALL                                         $15     
         11        BOOL_NOT                                         ~16     $15
         12      > JMPZ                                                     ~16, ->84
   10    13    > > SWITCH_STRING                                            !4, [ 'A':->67, 'B':->67, 'C':->67, 'D':->69, 'E':->69, 'F':->69, 'G':->71, 'H':->71, 'I':->71, 'J':->73, 'K':->73, 'L':->73, 'M':->75, 'N':->75, 'O':->75, 'P':->77, 'Q':->77, 'R':->77, 'S':->77, 'T':->79, 'U':->79, 'V':->79, 'W':->81, 'X':->81, 'Y':->81, 'Z':->81, ], ->83
   11    14    >   IS_EQUAL                                                 !4, 'A'
         15      > JMPNZ                                                    ~17, ->67
   12    16    >   IS_EQUAL                                                 !4, 'B'
         17      > JMPNZ                                                    ~17, ->67
   13    18    >   IS_EQUAL                                                 !4, 'C'
         19      > JMPNZ                                                    ~17, ->67
   14    20    >   IS_EQUAL                                                 !4, 'D'
         21      > JMPNZ                                                    ~17, ->69
   15    22    >   IS_EQUAL                                                 !4, 'E'
         23      > JMPNZ                                                    ~17, ->69
   16    24    >   IS_EQUAL                                                 !4, 'F'
         25      > JMPNZ                                                    ~17, ->69
   17    26    >   IS_EQUAL                                                 !4, 'G'
         27      > JMPNZ                                                    ~17, ->71
   18    28    >   IS_EQUAL                                                 !4, 'H'
         29      > JMPNZ                                                    ~17, ->71
   19    30    >   IS_EQUAL                                                 !4, 'I'
         31      > JMPNZ                                                    ~17, ->71
   20    32    >   IS_EQUAL                                                 !4, 'J'
         33      > JMPNZ                                                    ~17, ->73
   21    34    >   IS_EQUAL                                                 !4, 'K'
         35      > JMPNZ                                                    ~17, ->73
   22    36    >   IS_EQUAL                                                 !4, 'L'
         37      > JMPNZ                                                    ~17, ->73
   23    38    >   IS_EQUAL                                                 !4, 'M'
         39      > JMPNZ                                                    ~17, ->75
   24    40    >   IS_EQUAL                                                 !4, 'N'
         41      > JMPNZ                                                    ~17, ->75
   25    42    >   IS_EQUAL                                                 !4, 'O'
         43      > JMPNZ                                                    ~17, ->75
   26    44    >   IS_EQUAL                                                 !4, 'P'
         45      > JMPNZ                                                    ~17, ->77
   27    46    >   IS_EQUAL                                                 !4, 'Q'
         47      > JMPNZ                                                    ~17, ->77
   28    48    >   IS_EQUAL                                                 !4, 'R'
         49      > JMPNZ                                                    ~17, ->77
   29    50    >   IS_EQUAL                                                 !4, 'S'
         51      > JMPNZ                                                    ~17, ->77
   30    52    >   IS_EQUAL                                                 !4, 'T'
         53      > JMPNZ                                                    ~17, ->79
   31    54    >   IS_EQUAL                                                 !4, 'U'
         55      > JMPNZ                                                    ~17, ->79
   32    56    >   IS_EQUAL                                                 !4, 'V'
         57      > JMPNZ                                                    ~17, ->79
   33    58    >   IS_EQUAL                                                 !4, 'W'
         59      > JMPNZ                                                    ~17, ->81
   34    60    >   IS_EQUAL                                                 !4, 'X'
         61      > JMPNZ                                                    ~17, ->81
   35    62    >   IS_EQUAL                                                 !4, 'Y'
         63      > JMPNZ                                                    ~17, ->81
   36    64    >   IS_EQUAL                                                 !4, 'Z'
         65      > JMPNZ                                                    ~17, ->81
         66    > > JMP                                                      ->83
   13    67    >   ASSIGN                                                   !4, 2
         68      > JMP                                                      ->84
   16    69    >   ASSIGN                                                   !4, 3
         70      > JMP                                                      ->84
   19    71    >   ASSIGN                                                   !4, 4
         72      > JMP                                                      ->84
   22    73    >   ASSIGN                                                   !4, 5
         74      > JMP                                                      ->84
   25    75    >   ASSIGN                                                   !4, 6
         76      > JMP                                                      ->84
   29    77    >   ASSIGN                                                   !4, 7
         78      > JMP                                                      ->84
   32    79    >   ASSIGN                                                   !4, 8
         80      > JMP                                                      ->84
   36    81    >   ASSIGN                                                   !4, 9
         82      > JMP                                                      ->84
   37    83    >   ASSIGN                                                   !4, ''
   40    84    >   CONCAT                                           ~27     !2, !4
         85        ASSIGN                                                   !2, ~27
    6    86        PRE_INC                                                  !3
         87    >   STRLEN                                           ~30     !1
         88        IS_SMALLER                                               !3, ~30
         89      > JMPNZ                                                    ~31, ->6
   43    90    >   INIT_FCALL                                               'substr'
         91        SEND_VAR                                                 !2
         92        SEND_VAL                                                 0
         93        SEND_VAL                                                 3
         94        DO_ICALL                                         $32     
         95        ASSIGN                                                   !5, $32
   44    96        INIT_FCALL                                               'substr'
         97        SEND_VAR                                                 !2
         98        SEND_VAL                                                 3
         99        SEND_VAL                                                 3
        100        DO_ICALL                                         $34     
        101        ASSIGN                                                   !6, $34
   45   102        INIT_FCALL                                               'substr'
        103        SEND_VAR                                                 !2
        104        SEND_VAL                                                 -4
        105        DO_ICALL                                         $36     
        106        ASSIGN                                                   !7, $36
   47   107        CONCAT                                           ~39     !5, '-'
        108        CONCAT                                           ~40     ~39, !6
        109        CONCAT                                           ~41     ~40, '-'
        110        CONCAT                                           ~42     ~41, !7
        111        ASSIGN_DIM                                               !8
        112        OP_DATA                                                  ~42
    4   113      > JMP                                                      ->2
        114    >   FE_FREE                                                  $10
   49   115        FETCH_DIM_R                                      ~43     !8, 0
        116        ECHO                                                     ~43
        117      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
157.27 ms | 1412 KiB | 17 Q