d-
____________________________________________________
1-
Explode: Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the string separator. It basically breaks a string into an array
explode(string $separator, string $string, int $limit = PHP_INT_MAX): array
https://www.php.net/manual/en/function.explode.php
____________________________________________________
2-
Analisando
$a = "";
$b = "";
$frase = explode(" ", "rato roeu a roupa");
O limitador é espaço em branco (" "), definido no 1° param. O array que $frase recebe tem os valores nos indices:
$frase[0]; -> rato
$frase[1]; -> roeu
$frase[2]; -> a
$frase[3]; -> roupa
vars $c & $d estao com valores "rato" e "a".
____________________________________________________
3-
no for loop, strlen retorna tamanho da String. como $c recebeu "rato", strlen($c) = 4.
____________________________________________________
4-
O for loop tb itera ao contrario, iniciando do maior valor ate chegar a 0. . indica concatenação em PHP. assim, var $a recebe o valor [$i] do array em $c, do ultimo ao 1°. ao final da iteracao, $a sera "otar".
____________________________________________________
5-
o contador $i recebe o tamanho do array -1 (como o indice inicia do 0, o tamanho do array e indice do array nao coincidem; por isso o tamanho tem que diminuir -1 para bater com o max indice array.
____________________________________________________
6-
Outro detalhe é que foi usado o strlen para definir o limite do for loop. geralmente é usado sizeof para percorrer o array
strlen(string $string): int
Returns the length of the given string.
https://www.php.net/manual/en/function.strlen.php
Para isso, foi necesario usar uma String de mesma extensao ("rato") do que o tamanho do array.
____________________________________________________
7-
o 2° for loop é a mesma logica. exceto que ele so percorre o loop 1 vez porque $i = 0; // strlen("a") -> 1. 1-1 = 0.
como ja vimos que $a = "otar",
em
$frase[0] = $a; -> $frase[0] = "otar";
____________________________________________________
8-
em $frase[2] = $b;
valor de $b é 'a'. logo, $frase[2] recebeu 'a'.
____________________________________________________
9-
neste ponto, o array $frase contém
[0] => otar [1] => roeu [2] => a [3] => roupa
para converter array em String, usa-se implode:
____________________________________________________
10-
Implode:
Join array elements with a string
https://www.php.net/manual/en/function.implode.php
mesma logica que explode. so usa separador para separar os itens do array quando virarem uma String.
$resultado = implode(" ", $frase);
somente o $frase[0] foi alterado; no 1° for loop a var $a concatenou os valores do itens do array em $c, recebendo otar
____________________________________________________
https://imgur.com/a/uyCFew5