Dev (Back & Front)ARTIGO

Biblioteca de Funções – Parte 04

Olá amigos! Estou de volta com a 4ª parte da Biblioteca de Funções. Nesse artigo começaremos a falar sobre as funções utilizadas no tratamento de arrays.

Funções utilizadas no tratamento de arrays

Como já disse na parte 2 desta série de artigos, trabalhar com arrays pode se tornar muito fácil e descomplicado quando se domina e utiliza as funções de manipulação de arrays, tornando o trabalho muito mais rápido e prático.

Array
array array(...);

Essa função cria um array baseado nos parâmetros fornecidos, sendo possível fornecer o índice de cada elemento. O valor do índice pode ser um valor de qualquer tipo, e não um inteiro. Caso o índice não seja fornecido, será atribuído a ele um valor inteiro seqüencial, iniciando-se em 0 (zero) ou do último número inteiro explícito.

Exemplo 1
<?php
$frutas = array (
"frutas" => array("a"=>"laranja", "b"=>"banana", "c"=>"maçã"),
"numeros" => array(1, 2, 3, 4, 5, 6),
"buracos" => array("primeiro", 5 => "segundo", "terceiro")
)
?>
Exemplo 2
<?php
$array = array(1, 1, 1, 1, 1, 8 => 1, 4 => 1, 19, 3 => 13); 
print_r($array);
?>
Vai mostrar:
Array 
(
[0] => 1
[1] => 1
[2] => 1
[3] => 13
[4] => 1
[8] => 1
[9] => 19
)
Exemplo 3:
<?php
$trimestre_1 = array(1 => 'January', 'February','March');
print_r($trimestre_1);
?>
Vai mostrar:
Array 
(
[1] => Janeiro
[2] => Fevereiro
[3] => Marco
)

Não recomendo o uso de arrays com índices variados, pois pode confundir facilmente que está trabalhando no código. Caso seja necessário, tenha muita atenção no uso.

Range
array range(int minimo, int maximo);

Essa função cria um array onde os elementos são inteiros, pertencentes ao intervalo especificado na função. Caso o primeiro parâmetro seja maior que o segundo, o valor retornado será vazio (false).

Exemplo 1:
<?php 
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,11, 12) 
foreach(range(0, 12) as $numero) { 
echo $numero;
}
// Utilização da seqüência de caracteres introduzidos no 4.1.0 
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'); 
foreach(range('a', 'i') as $letra) {
echo $letra;
}
// array('c', 'b', 'a'); 
foreach(range('c', 'a') as $letra) {
echo $letra;
}
?>
Shuffle
void shuffle(array &arr);

Essa função apenas troca as posições dos elementos do array, não retornando valor algum.

Exemplo 1:
<?php
$numeros = range(1,20);
srand((float)microtime()*1000000);
shuffle($numeros);
while (list(, $numeros) = each($numbers)) {
echo "$numeros ";
}
?>

Funções de “navegação”

As variáveis do tipo array têm um ponteiro interno que indica qual o próximo elemento será acessado, no caso de não ser especificado um índice. As funções listadas abaixo modificam esse ponteiro, fazendo com que seja possível percorrer o array para verificar suas chaves e elementos.

Reset
mixed reset(array arr);

Seta o ponteiro para o 1º elemento do array, retornando o conteúdo do elemento.

Exemplo 1:
<?php 
$array = array('primero elemento', 'segundo elemento', 'terceiro elemento', 'quarto elemento'); 
//o ponteiro está sobre o primeiro elemento 
echo current($array)."<br>\n"; // "primeiro elemento"
// pula dois elementos 
next($array); 
next($array); 
echo current($array)."<br>\n"; // "terceiro elemento" 
// reinicia o ponteiro, começa novamente o primeiro elemento 
reset($array); 
echo current($array)."<br>\n"; // "primeiro elemento" 
?>
End

mixed end(array arr);

Seta o ponteiro interno para o último elemento do array, retornando o conteúdo desse elemento.

Exemplo 1:
<?php
$carros = array('corsa', 'fox', 'parati');
print end($carros); // parati
?>
Next
mixed next(array arr);

Seta o ponteiro interno para o último elemento do array, retornando o conteúdo desse elemento.

Exemplo 1:
<?php
$carros = array('corsa', 'fox', 'parati');
print end($carros); // parati
?>
Next
mixed next(array arr);

Seta o ponteiro para o elemento seguinte do array, retornando o conteúdo desse elemento.

Exemplo 1:
<?php 
$transportes = array('moto', 'bicicleta', 'carrro', 'avião'); 
$mode = current($transportes); // $mode = 'moto'; 
$mode = next($transportes); // $mode = 'bicicleta'; 
$mode = next($transportes); // $mode = 'carrro'; 
$mode = prev($transportes); // $mode = 'bicicleta'; 
$mode = end($transportes); // $mode = 'avião'; 
?>

Não aconselho o uso dessa função para saber se um elemento é o último do array, pois ela pode retornar false tanto no final do array como no caso de haver um elemento vazio.

Prev
mixed prev(array arr);

Seta o ponteiro para o elemento anterior do array, retornando o conteúdo desse elemento. Funciona de maneira inversa a next.

Exemplo 1:
<?php 
$transportes = array('moto', 'bicicleta', 'carrro', 'avião'); 
$mode = current($transportes); // $mode = 'moto'; 
$mode = next($transportes); // $mode = 'bicicleta'; 
$mode = next($transportes); // $mode = 'carrro'; 
$mode = prev($transportes); // $mode = 'bicicleta'; 
$mode = end($transportes); // $mode = 'avião'; 
?>
Pos
mixed pos(array arr);

O valor retornado é o conteúdo do elemento atual do array, indicado pelo ponteiro.

Exemplo 1:
<?php 
$transportes = array('moto', 'bicicleta', 'carrro', 'avião'); 
$mode = current($transportes); // $mode = 'moto'; 
$mode = next($transportes); // $mode = 'bicicleta'; 
$mode = next($transportes); // $mode = 'carrro'; 
pos ($transportes); // retorna "carro";
$mode = prev($transportes); // $mode = 'bicicleta'; 
$mode = end($transportes); // $mode = 'avião'; 
?>
Key
mixed key(array arr);

O seu funcionamento é parecido com o da função pos, mas ao invés de retornar o elemento atual indicado pelo ponteiro do array, retorna seu índice.

Exemplo 1:
<?php 
$array = array( 
'fruta1' => 'maçã', 
'fruta2' => 'laranja', 
'fruta3' => 'uva', 
'fruta4' => 'maçã', 
'fruta5' => 'maçã'); 

// este ciclo exibirá toda a chave do array associativo 
// onde o valor é igual a "maçã"
 
while ($fruta_nome = current($array)) { 
if ($fruta_nome == 'maçã') { 
echo key($array).'<br>'; 
} 
next($array); 
} 
?>
Each
array each(array arr);

Retorna um array que contém o índice e o elemento atual indicado pelo ponteiro do array. O valor retornado é um array de quatro elementos, cujos índices são 0, 1, “key” e “value”. Os elementos de índices 0 e “key” armazenam o índice do valor atual, e os elementos de índices 1 e “value” contém o valor do elemento atual indicado pelo ponteiro.

Esta função pode ser utilizada para percorrer todos os elementos de um array e determinar se já foi encontrado o último elemento, pois no caso de haver um elemento vazio, a função não retornará o valor false. A função each só retorna false depois que o último elemento do array foi encontrado.

Exemplo 1:
<?php
$foo = array("pedro", "carlos", "daniel", "samuel", "fábio", "marli"); 
$bar = each($foo);
print_r($bar); 
?>

$bar agora contém os seguintes pares de chaves e valores:/

Array 
( 
[1] => pedro 
[value] => pedro 
[0] => 0 
[key] => 0 
)

<?php 
$foo = array("Roberto" => "Lucas", "José" => "Caio"); 
$bar = each($foo); 
print_r($bar); 
?>

$bar agora contém os seguintes pares de chaves e valores:?}

Array 
( 
[1] => Lucas 
[value] => Lucas 
[0] => Roberto 
[key] => Roberto 
)}

Gostaram? Então não se esqueçam de comentar o artigo e enviar sugestões.

Bons estudos e até o próximo artigo…

É programador, escritor e palestrante. Autor dos livros "CodeIgniter: Produtividade na criação de aplicações web em PHP", "Amazon AWS: Descomplicando a computação na nuvem" e "PHP 7 - Mudanças e Novidades". Idealizador do portal Universidade CodeIgniter, onde escreve semanalmente sobre o framework CodeIgniter.

Ver perfil