Cap. 1 - Introdução ao PHP
1.4 - Arrays e Strings
Objetivo: Estudar aspectos específicos de Arrays e Strings em PHP.Conteúdo da Aula:
Introdução
Nessa aula veremos as estruturas um pouco mais sobre arrays e funções em PHP.1. Arrays
Como dito, arrays são variáveis compostas, que assumem valores indexados. Podem ser uni-dimensionais (vetores) ou n-dimensionais (matrizes). Os elementos dos arrays são acessados pelos seu "endereço" ou seja, sua posição dentro do array.
Em PHP
o array pode ser criado pelo construtor array (veremos o que significa construtor mais adiante no curso) ou pode ser definido dentro de laços (loops) de repetição (for, while, do-while). Veja o exemplo seguinte. Ele apresenta uma forma particular de definir um aray. A posição foo contém o elemento "bar" e a posição 12 contém o elemento "true" (valor 1).Exemplo
<?php
$arr = array("foo" => "bar", 12 => true);
echo $arr["foo"]; // bar
echo $arr[12]; // 1
?>
Exercício
Modifique o programa acima, para colocar dados no array nas posições 1 a 10. Coloque o valor do índice ao quadrado em cada um dessas posições. Coloque na posição 12 o valor FALSE.
Exemplo
Veja o exemplo seguinte. Entenda o que ele faz. Repare que tentou-se acessar um índice que não foi definido quando o array foi criado.
<?php
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));
echo $arr["somearray"][6]; // 5
echo $arr["somearray"][13]; // 9
echo $arr["somearray"]["a"]; // 42
?>
Outra forma de definir um aray
O array pode ser criado definindo-se diretamente seus elementos (como em C) e não somente pelo método array.
Diferentemente do C, PHP possibilta criar um índice não numérico, ou seja, pode-se indexar o array usando-se string (como o caso do primeiro exemplo acima, quando o índice era "foo").
$arr[key] = value; $arr[] = value; // key may be an integer or string // value may be any value of any type
Veja o exemplo a seguir.
Entenda o exemplo. Repare nos comentários. Repare no comando unset().
<?php
$arr = array(5 => 1, 12 => 2);
$arr[] = 56; // This is the same as $arr[13] = 56;
// at this point of the script
$arr["x"] = 42; // This adds a new element to
// the array with key "x"
unset($arr[5]); // This removes the element from the array
unset($arr); // This deletes the whole array
?>
Veja mais exemplos usando array em php.net
2. Manipulação de Arrays
Existem várias formas de se criar um array em PHP. Veja duas formas no exemplo abaixo
$frutas = array('maçã','banana', 'mamão','abacaxi');
ou
$frutas = array(0=>'maçã',1=>'banana',2=> 'mamão',3=>'abacaxi');
Outra forma é a partir da referência direta ao array, como no programa abaixo.
<?php $nomes[]="maria"; $nomes[]="jose"; $nomes[]="joão"; echo $nomes."<br>"; echo $nomes[2]."<br>"; ?>
Exercício
Execute o progama do exemplo anterior. Repare na utilização do assento e veja a codificação do seu Editor de Textos. Repare na utilização da tag ."<br>";
Índices
O elemento do array em PHP pode ser acessado via o índice da sua posição (0,1,2,3...) ou por um "label" (string). Veja o exemplo a seguir.
<?php
$cores = array('vermelho'=>'FF0000','azul'=>'0000FF','verde'=>'00FF00');
echo $cores['vermelho']."<br>";
echo $cores['azul']."<br>";
?>
Exercício
Execute o progama do exemplo anterior. Repare na utilização da tag ."<br>";.
Funções para Manipulação de Arrays
Na lista a seguir são apresentadas algumas funções importantes para se trabalhar com array.
array_push()
array_pop()
array_shift()
array_unshift()
array_pad()
array_reverse()
array_merge()
array_keys()
array_values()
array_slice()
count()
array_in()
sort()
rsort()
asort()
ksort()
explode()
implode()
Lista Completa das Funções de Array em PHP
Veja a lista completa no link do site php.net, em portugues ou em ingles:
3. Strings
Como já visto, strings são "arrays de caracteres". Strings podem ser declaradas usando-se aspas simples ou duplas ou podem ser concatenadas usando-se o operador ponto.
Assim como em C, tem-se os caracteres especiais, como o \n, \r e \t.
Tabela com Caracteres especiais (ou caracteres de "escape")
Tabela Obtida de php.net(br)
| Seqüência | Significado |
|---|---|
| \n | fim de linha (linefeed ou LF ou 0x0A (10) em ASCII) |
| \r | retorno de carro (carriage return ou CR ou 0x0D (13) em ASCII) |
| \t | TAB horizontal (HT ou 0x09 (9) em ASCII) |
| \v | TAB vertical (VT ou 0x0B (11) em ASCII) (desde o PHP 5.2.5) |
| \f | form feed (FF ou 0x0C (12) em ASCII) (desde o PHP 5.2.5) |
| \\ | contra barra ou barra invertida |
| \$ | sinal de cifrão |
| \" | aspas |
| \[0-7]{1,3} | a seqüência de caracteres batendo a expressão regular dos caracteres em notação octal |
| \x[0-9A-Fa-f]{1,2} | a seqüência de caracteres batendo a expressão regular de um caracter em notação hexadecimal |
Em PHP existem importantes funções para se trabalhar com strings, algumas delas apresentadas na seção a seguir.
Veja maiores detalhes sobre strings no site oficial do PHP: php.net
4. Manipulação de Strings
As funções para manipulação de strings são ferramentas importantes nos programas em PHP. Veja a lista completa nos links (em inglês ou portugues) abaixo- Lista de Funções para manipulação de strings em ingles)
- Lista de Funções para manipulação de strings (em portugues)
Algumas Funções de Manipulação de Strings
stroupper()
strolower()
substr()
strpad()
str_repeat()
strlen()
str_replace()
strpos()
trim()
5. Exemplos
Exemplo 1: Formas de lidar com array
<?php
// This:
$a = array( 'color' => 'red',
'taste' => 'sweet',
'shape' => 'round',
'name' => 'apple',
4 // key will be 0
);
$b = array('a', 'b', 'c');
// . . .is completely equivalent with this:
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name'] = 'apple';
$a[] = 4; // key will be 0
$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// After the above code is executed, $a will be the array
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), and $b will be the array
// array(0 => 'a', 1 => 'b', 2 => 'c'), or simply array('a', 'b', 'c').
?>
Exemplo 2
<?php
// Array as (property-)map
$map = array( 'version' => 4,
'OS' => 'Linux',
'lang' => 'english',
'short_tags' => true
);
// strictly numerical keys
$array = array( 7,
8,
0,
156,
-10
);
// this is the same as array(0 => 7, 1 => 8, ...)
$switching = array( 10, // key = 0
5 => 6,
3 => 7,
'a' => 4,
11, // key = 6 (maximum of integer-indices was 5)
'8' => 2, // key = 8 (integer!)
'02' => 77, // key = '02'
0 => 12 // the value 10 will be overwritten by 12
);
// empty array
$empty = array();
?>
Exemplo 3
<?php
$colors = array('red', 'blue', 'green', 'yellow');
foreach ($colors as $color) {
echo "Do you like $color?\n";
}
?>
Exemplo 4
<?php
// PHP 5
foreach ($colors as &$color) {
$color = strtoupper($color);
}
unset($color); /* ensure that following writes to
$color will not modify the last array element */
// Workaround for older versions
foreach ($colors as $key => $color) {
$colors[$key] = strtoupper($color);
}
print_r($colors);
?>
Exemplo 5: Strings
<?php
echo 'isto é uma string comum';
echo 'Você pode incluir novas linhas em strings,
dessa maneira que estará
tudo bem';
// Imprime: Arnold disse uma vez: "I'll be back"
echo 'Arnold disse uma vez: "I\'ll be back"';
// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\\*.*?';
// Imprime: Você tem certeza em apagar C:\*.*?
echo 'Você tem certeza em apagar C:\*.*?';
// Imprime: Isto não será substituido: \n uma nova linha
echo 'Isto não será substituido: \n uma nova linha';
// Imprime: Variaveis $também não $expandem
echo 'Variaveis $também não $expandem';
?>
6. Exercícios de Revisão
1. Executando os Exemplos
Estude e execute os exemplos contidos nessa página. Os exemplos foram tirados da página php.net e estão em inglês. Ao traduzir (os comentários e as frases) você entenderá melhor o que cada um faz.
2. Programa em PHP
Faça um programa em PHP para multiplicar duas matrizes 3 x 3. O programa deve definr as duas matrizes com elementos inteiros e mostrar o resultado do produto.
3. Exemplos em PHP
Estude os exemplos contidos na página arrays no php.net