jun
05
2009
0

Minicurso 6ª Parte: funções para tratamento de arrays em PHP

Olá Pessoal,

Conforme prometido vamos ver como funcionam as funções fornecidas pelo PHP para tratamento de arrays.

array_push()

Essa função adiciona um valor como última posição do array. Admite dois parâmetros: o array ao qual adicionaremos um valor, e o valor a ser adicionado ao fim do array. Sua sintaxe é a seguinte: array_push(array, valor). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Adiciono um elemento ao fim do array
array_push($nomes, "Marcela");
//Imprimo o array
print_r($nomes);
?>

array_pop()

A função array_pop() retira um valor do fim de um array. Admite como parâmetro o nome do array a ser retirado um elemento. Sua sintaxe é: array_pop(array). Veja um exemplo de array_pop() em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Retiro um elemento ao fim do array
array_pop($nomes);
//Imprimo o array
print_r($nomes);
?>

array_shift()

Essa função retira um elemento do início de um array. Admite como parâmetro o nome do array do qual retiraremos o primeiro elemento. Sua sintaxe é a seguinte: array_shift(array). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Retiro um elemento do começo desse array
array_shift($nomes);
//Imprimo o array
print_r($nomes);
?>

array_unshift()

Essa função insere um elemento do início de um array. Admite como parâmetros: o nome do array e o valor a ser inserido. Sua sintaxe é a seguinte: array_shift(array, valor). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Adiciono um elemento no começo desse array
array_unshift($nomes, "Marcela");
//Imprimo o array
print_r($nomes);
?>

array_pad()

Essa função faz com que um array seja preenchido com um determinado valor, em um dado número de posições. Admite como parâmetros: o nome do array, a quantidade posições e o valor que usaremos para preenchimento. Sua sintaxe é a seguinte: array_pad(array, quantidade_posições, valor). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Preencho esse array com um certo valor, um dado número de vezes
array_pad($nomes, 10, "Sem Nome");
//Imprimo o array
print_r($nomes);
?>

array_reverse()

Essa função retorna um array com seus elementos na ordem inversa. Admite dois parâmetros: o nome do array, e um valor lógico indicando se os elementos continuarão associados aos seus índices. Sua sintaxe é a seguinte: array_reverse(array, valor_lógico). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Inverto a posição dos elementos desse array
array_reverse($nomes, true);
//Imprimo o array
print_r($nomes);
?>

array_merge()

Essa função gera um array a partir da mesclagem dos valores de outros dois arrays, de forma que um seja adicionado ao final do outro, gerando esse novo array. Se houverem índices com o mesmo nome em ambos os arrays, o conteúdo do segundo irá se sobrepor ao primeiro. Admite como parâmetros: os dois arrays que serão mesclados. Sua sintaxe é a seguinte: array_merge(array1, array2). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
9
<?php
//Declaro os arrays
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
$nomes2 = array("Henrique", "Fernando");
//Gero um terceiro array com a mesclagem de outros dois
array_merge($nomes, $nomes2);
//Imprimo o array
print_r($nomes);
?>

array_keys()

Essa função retorna os índices de um array. Admite como parâmetros: o nome do array, e um dado que fará a função retornar apenas os índices cujo valor corresponda ao parâmetro. Sua sintaxe é a seguinte: array_keys(array, valor_para_busca). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Gero um segundo array somente com os índices do primeiro array
$chaves = array_keys($nomes);
//Imprimo o array
print_r($chaves);
?>

array_values()

Essa função retorna os valores de um array em um outro array. Admite como parâmetro o nome do array. Sua sintaxe é a seguinte: array_values(array). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Gero um segundo array somente com os valores do primeiro array
$values = array_values($nomes);
//Imprimo o array
print_r($values);
?>

strong>count()

Essa função retorna o tamanho de um array, ou seja a quantidade de posições que ele possui. Admite como parâmetro o nome do array. Sua sintaxe é a seguinte: count(array). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Conto o número de posições desse array
echo count($nomes);
?>

array_in()

Essa função busca por um dado valor dentro do array. Admite como parâmetros: conteúdo a ser buscado, nome do array. Sua sintaxe é a seguinte: array_in(valor_busca, array). Ela retorna um valor lógico TRUE em caso de sucesso, e FALSE em caso de erro. Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
9
10
11
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Verifico se existe um dado valor dentro do array
if (array_in("Diego", $nomes)) {
echo "Encontramos o nome";
}
else {
echo "Não encontramos o nome";
}
?>

array_slice()

Essa função retorna um array com uma porção dos valores extraídos de um array maior, em suma ela extrai um pedaço de um array gerando um array menor. Admite como parâmetros: o nome do array, a posição inicial da porção a ser extraída, e o tamanho (quantidade de posições) da porção a ser extraída. Sua sintaxe é a seguinte: array_slice(array, posição_inicial, tamanho). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Gero um segundo array a partir de uma porção do primeiro
$porcao = array_slice($nomes, 3, 4);
//Imprimo o array
print_r($porcao);
?>

sort()

Essa função ordena os valores de um array, sem manter a associação de índices. Admite como parâmetro o nome do array. Sua sintaxe é a seguinte: sort(array). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Ordeno o array por seus valores
sort($nomes);
//Imprimo o array
print_r($nomes);
?>

rsort()

Essa função ordena de forma reversa os valores de um array, sem manter a associação de índices. Admite como parâmetro o nome do array. Sua sintaxe é a seguinte: rsort(array). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Ordeno em ordem reversa o array por seus valores
rsort($nomes);
//Imprimo o array
print_r($nomes);
?>

asort() e arsort()

Essas funções ordenam um array por seus valores (seja na ordem reversa ou não), porém mantém a associação de índices. Admite como parâmetro o nome do array. Sua sintaxe é a seguinte: asort(array) / arsort(array). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
//Declaro um array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Ordeno o array por seus valores
asort($nomes);
//Imprimo o array
print_r($nomes);
//Ordeno de forma reversa
arsort($nomes);
//Imprimo
print_r($nomes);
?>

explode()

Essa função gera um array a partir de uma string, usando um caracter como separador dos elementos. Admite como parâmetros: o caracter separador, a string. Sua sintaxe é a seguinte: explode(caracter_separador, string). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
<?php
//Gero um array a partir dessa string
$data = explode("/", "09/08/1986");
//Imprimo o array
print_r($data);
?>

implode()

Essa função gera uma string a partir de um array, usando um caracter como separador dos elementos. Admite como parâmetros: o caracter separador, a string. Sua sintaxe é a seguinte: implode(caracter_separador, string). Veja um exemplo da função em funcionamento:

1
2
3
4
5
6
7
8
<?php
//Declaro um array
$data = array("09", "08", "1986");
//Gero uma string a partir desse array
$date = implode("/", $data);
//Imprimo o array
print_r($date);
?>

Bem, agora acabamos os tópicos sobre arrays em PHP. O próximo tema de nosso minicurso é gerenciamento de datas, é um assunto bem legal e útil para todos nós. Então, até lá!

Abraços,
Diego.

jun
01
2009
0

Minicurso 6ª Parte: percorrendo arrays e matrizes com loops em PHP

Olá Pessoal,

Hoje iremos aprender a percorrer arrays e matrizes usando loops, dessa forma podemos acessar automaticamente todas as posições de um array ou matriz. Bem, vejamos o array abaixo:

1
2
3
4
5
6
7
8
9
10
<?php
//Declaramos o array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Utilizamos o loop while para percorrer o array
$i = 0;
while ($nomes) {
echo $nomes[$i]."<br />";
$i++;
}
?>

Com certeza essa não é a forma mais indicada para percorrer um array. Porém, iremos utilizar o loop WHILE para percorrer arrays com informações obtidas em uma consulta ao banco de dados. Ao menos vocês viram o loop em funcionamento, e não estranharão quando o usarmos no futuro. Podemos também utilizar o loop FOR para alcançar dados de um array:

1
2
3
4
5
6
7
8
9
10
<?php
//Declaramos o array
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
//Utilizo a função count() para contar o número de posições que esse array possui
$limite = count($nomes);
//Utilizamos o loop for para percorrer o array
for ($i = 0; $i < $limite; $i++) {
echo $nomes[$i]."<br />";
}
?>

Bem, o uso do loop FOR também não é muito convencional. Na grande maioria dos casos, utilizamos um loop especialmente projetado para percorrer arrays: o FOREACH. O FOREACH é uma estrutura de repetição específica para arrays. Sua sintaxe é uma versão simplificada do FOR. Na prática, ele desmembra um array em seus itens, tratando cada índice e valor de forma isolada, por meio da cláusula AS. O FOREACH possui duas formas de aplicação, uma simplificada e outra mais completa. Apresentaremos ambas, porém a versão completa é mais usual. Veja o FOREACH na prática:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$nomes = array("Diego", "Marcelo", "Maria", "João", "Mário", "José", "Juliana", "Fernanda");
 
//Exemplo 1: Versão compacta - Não trabalha com a chave do elemento
foreach ($nomes as $valor) {
echo "$valor - ";
}
 
//Exemplo 2: Versão completa - Trabalha com a chave e valor do elemento
foreach ($nomes as $chave => $valor) {
echo "$chave => $valor;<br />";
}
?>

Reparem que “$chave” corresponde ao índice do elemento, e valor é o conteúdo desse elemento. Com essa estrutura podemos fazer inúmeras coisas interessantes no PHP. O FOREACH é um loop para percorrer ESPECIFICAMENTE arrays e objetos (a partir da versão 5 do PHP), ou seja se você tentar usá-lo em qualquer outra situação, o PHP retornará uma mensagem de erro. Em resumo: você pode usar outros loops para percorrer arrays, mas não pode usar o FOREACH para percorrer nada além de arrays e objetos.

Já vimos como percorrer arrays simples ou unidimensionais. Mas se precisarmos percorrer matrizes ou arrays multidimensionais? Simples: utilizando loops de vários níveis! Veja o exemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$alunos = array(0 => array("nome" => "Diego",
     "idade" => 23,
      "escolaridade" => "Superior Completo"),
      1 => array("nome" => "João",
     "idade" => 30,
     "escolaridade" => "Ensino Médio Completo")
      );
foreach ($alunos as $key => $val) {
echo "Aluno $key<br />";
foreach ($val as $indice => $dado) {
echo "$indice => $dado<br />";
}
}
?>

Por hoje é só pessoal! :-P

Os próximos dois posts falarão sobre as funções para tratamento de arrays! Não percam e até lá!

Abraços,
Diego.

mai
25
2009
0

Minicurso 6ª Parte: declarando arrays e matrizes em PHP

Olá Pessoal,

Vamos entrar num assunto novo e muito importante: arrays em PHP. Com eles podemos armazenar inúmeros dados de diferentes tipos, o que aumenta bastante a nossa produtividade. O PHP fornece uma série de funções para gerenciamento de arrays, e é importante conhecer bem o funcionamento dessa estrutura.

Declarando arrays

Em PHP temos duas formas de declarar arrays:

Usando a função array():

1
2
3
4
5
6
<?php
//Declarando um array sem manusear os índices
$nomes = array("Diego", "Marcelo", "Mauro", "João", "José");
//Declarando um array manuseando os índices
$nomes = array(0 => "Diego", 1 => "Marcelo", 2 => "Mauro", 3 => "João", 4 => "José");
?>

Adicionando valor diretamente:

1
2
3
4
5
6
7
<?php
$nomes[] = "Diego";
$nomes[] = "Marcelo";
$nomes[] = "Mauro";
$nomes[] = "João";
$nomes[] = "José";
?>

Para imprimir os valores de um array, basta referenciar o índice respectivo dentro dos colchetes:

1
2
3
4
5
6
7
<?php
echo $nomes[0];
echo $nomes[1];
echo $nomes[2];
echo $nomes[3];
echo $nomes[4];
?>

Lembrando que em PHP os índices de arrays podem ser inteiros (positivos) ou strings, e os valores podem ser de qualquer tipo, inclusive um outro array.

Arrays multidimensionais ou matrizes

Um array pode ter qualquer tipo de dados em seus valores, inclusive um outro array. Arrays que contém, em suas posições, outros arrays são chamados de arrays muldimensionais ou matrizes. Veja o exemplo de um array multidimensional:

1
2
3
4
5
6
7
8
9
10
<?php
$alunos = array(0 => array("nome" => "Diego",
     "idade" => 23,
      "escolaridade" => "Superior Completo"),
      1 => array("nome" => "João",
     "idade" => 30,
     "escolaridade" => "Ensino Médio Completo")
      );
echo $alunos[0]["nome"]; //Irá imprimir o nome Diego - nome do aluno de índice 0
?>

Por hoje é só pessoal. Consolidem o conceito de arrays simples e multidimensional, e amanhã falaremos sobre como percorrer arrays usando loops. Até lá.

Abraços,
Diego.

Powered by WordPress | Theme: Aeros 2.0 by TheBuckmaker.com