3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = array("/Expurgo", "/Famosos e Etc/Ego", "/Famosos e Etc/Ego/40 Graus", "/Famosos e Etc/Ego/40 Graus/Home", "/Famosos e Etc/Ego/Beleza", "/Famosos e Etc/Ego/Beleza/Home", "/Famosos e Etc/Ego/Carnaval", "/Famosos e Etc/Ego/Especiais/Avon", "/Famosos e Etc/Ego/Especiais/Dia das Maes", "/Famosos e Etc/Ego/Especiais/Lollapalooza", "/Famosos e Etc/Ego/Especiais/Lollapalooza/Home", "/Famosos e Etc/Ego/Especiais/Loreal", "/Famosos e Etc/Ego/Especiais/Malwee", "/Famosos e Etc/Ego/Especiais/Natal", "/Famosos e Etc/Ego/Especiais/Pascoa", "/Famosos e Etc/Ego/Especiais/Rock in Rio", "/Famosos e Etc/Ego/Especiais/Rock in Rio/Home", "/Famosos e Etc/Ego/Especiais/The Body Shop", "/Famosos e Etc/Ego/Gravidez", "/Famosos e Etc/Ego/Gravidez/Home", "/Famosos e Etc/Ego/Home", "/Famosos e Etc/Ego/Horoscopo", "/Famosos e Etc/Ego/Horoscopo/Home", "/Famosos e Etc/Ego/Moda", "/Famosos e Etc/Ego/Moda/Home", "/Famosos e Etc/Ego/Teen", "/Famosos e Etc/Ego/Teen/Home", "/Famosos e Etc/Home", "/G1/Agronegocios", "/G1/Agronegocios/Home", "/G1/Bem Estar", "/G1/Bem Estar/Home", "/G1/Blogs e Colunas", "/G1/Blogs e Colunas/Altieres Rohr", "/G1/Blogs e Colunas/Alysson Muotri", "/G1/Blogs e Colunas/Andrea Ramal", "/G1/Blogs e Colunas/Bruno Medina", "/G1/Blogs e Colunas/Cassio Barbosa", "/G1/Blogs e Colunas/Cristina Lobo", "/G1/Blogs e Colunas/Geneton Moraes Neto", "/G1/Blogs e Colunas/Luciano Trigo", "/G1/Blogs e Colunas/Paulo Coelho", "/G1/Blogs e Colunas/Redacao", "/G1/Blogs e Colunas/Ronaldo Prass", "/G1/Blogs e Colunas/Sergio Nogueira", "/G1/Blogs e Colunas/Startup", "/G1/Blogs e Colunas/Thais Heredia", "/G1/Blogs e Colunas/Viver Noronha", "/G1/Blogs e Colunas/Yvonne Maggie", "/G1/Blogs e Colunas/Zeca Camargo", "/GE", "/GE/Futebol", "/GE/Futebol/Especiais", "/GE/Futebol/Especiais/Home"); $return_array = array(); $temp_array = array(); foreach ($array as $key => $values) { echo substr($values, strrpos($values, "/"), -1) . "<br /><br />"; continue; $part = explode("/", $values); // Separa o ultimo noh $last_node = array_pop($part); // Se tem mais de um item junta o array if (count($part) > 1){ $parent_id = implode("/", $part); } else { // Senao pega a unica posicao $parent_id = $part[0]; } end($part); while ($level = prev($part)) { $return_array[] = array( "id" => $values, "parent" => $parent_id, "text" => $last_node ); } } echo json_encode($return_array);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 4, Position 2 = 53
Branch analysis from position: 4
2 jumps found. (Code = 78) Position 1 = 5, Position 2 = 53
Branch analysis from position: 5
1 jumps found. (Code = 42) Position 1 = 4
Branch analysis from position: 4
Branch analysis from position: 53
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 53
filename:       /in/0K7TT
function name:  (null)
number of ops:  59
compiled vars:  !0 = $array, !1 = $return_array, !2 = $temp_array, !3 = $values, !4 = $key, !5 = $part, !6 = $last_node, !7 = $parent_id, !8 = $level
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, <array>
   57     1        ASSIGN                                                   !1, <array>
   58     2        ASSIGN                                                   !2, <array>
   60     3      > FE_RESET_R                                       $12     !0, ->53
          4    > > FE_FETCH_R                                       ~13     $12, !3, ->53
          5    >   ASSIGN                                                   !4, ~13
   62     6        INIT_FCALL                                               'substr'
          7        SEND_VAR                                                 !3
          8        INIT_FCALL                                               'strrpos'
          9        SEND_VAR                                                 !3
         10        SEND_VAL                                                 '%2F'
         11        DO_ICALL                                         $15     
         12        SEND_VAR                                                 $15
         13        SEND_VAL                                                 -1
         14        DO_ICALL                                         $16     
         15        CONCAT                                           ~17     $16, '%3Cbr+%2F%3E%3Cbr+%2F%3E'
         16        ECHO                                                     ~17
   63    17      > JMP                                                      ->4
   65    18*       INIT_FCALL                                               'explode'
         19*       SEND_VAL                                                 '%2F'
         20*       SEND_VAR                                                 !3
         21*       DO_ICALL                                         $18     
         22*       ASSIGN                                                   !5, $18
   67    23*       INIT_FCALL                                               'array_pop'
         24*       SEND_REF                                                 !5
         25*       DO_ICALL                                         $20     
         26*       ASSIGN                                                   !6, $20
   70    27*       COUNT                                            ~22     !5
         28*       IS_SMALLER                                               1, ~22
         29*       JMPZ                                                     ~23, ->36
   71    30*       INIT_FCALL                                               'implode'
         31*       SEND_VAL                                                 '%2F'
         32*       SEND_VAR                                                 !5
         33*       DO_ICALL                                         $24     
         34*       ASSIGN                                                   !7, $24
         35*       JMP                                                      ->38
   73    36*       FETCH_DIM_R                                      ~26     !5, 0
         37*       ASSIGN                                                   !7, ~26
   76    38*       INIT_FCALL                                               'end'
         39*       SEND_REF                                                 !5
         40*       DO_ICALL                                                 
   78    41*       JMP                                                      ->47
   80    42*       INIT_ARRAY                                       ~30     !3, 'id'
   81    43*       ADD_ARRAY_ELEMENT                                ~30     !7, 'parent'
   82    44*       ADD_ARRAY_ELEMENT                                ~30     !6, 'text'
   79    45*       ASSIGN_DIM                                               !1
   82    46*       OP_DATA                                                  ~30
   78    47*       INIT_FCALL                                               'prev'
         48*       SEND_REF                                                 !5
         49*       DO_ICALL                                         $31     
         50*       ASSIGN                                           ~32     !8, $31
         51*       JMPNZ                                                    ~32, ->42
   60    52*       JMP                                                      ->4
         53    >   FE_FREE                                                  $12
   88    54        INIT_FCALL                                               'json_encode'
         55        SEND_VAR                                                 !1
         56        DO_ICALL                                         $33     
         57        ECHO                                                     $33
         58      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
167.58 ms | 1392 KiB | 29 Q