1-PHP Introdução
Exercícios
Curso Banco Dados
IntroducaoBD.php

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(=> 513 => 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(=> 112 => 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üências de escape
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

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

Referências

voltar ao início da página