CAPÍTULO III Utilizando Arrays PHP E MYSQL Array Um array é uma variável que armazena um conjunto ou seqüência de valores. Um array em Php pode ter muitos elementos, e cada elemento armazenar diversos valores como: texto, números, ou outro array. Em php o array pode ser associativo ou numericamente indexado. Associativo Indexado (“one”=>12, “dois”=> 34 ...) (1=>’a’,2=>’b’, 3=>12,...) Mixado (1=>2.5,’nome’=>’Everton’) PHP E MYSQL Array numericamente Exemplo indexado $produto = array(‘everton’,’hipolito’,’freitas’); $numeros = range(1,10) Cria um array com uma sequencia de números de 1 a 10. Acessando o conteúdo de um array Acesse através do nome da variável e seu índice. Exemplo $produto[0] //obtem elemento zero do array Echo $produto[0]; Alterando o conteúdo Utilize o operador = . de uma posição do array. Exemplo $produto[1]=“Joao”; //altera a posição 1 do array produtos para joao. Echo $produto[1]; PHP E MYSQL Alternativa para se criar um array $produto[0]=‘everton’ $produto[1] = ‘hipolito’ $produto[2]= ’freitas’; Observação O array é redimensionado dinamicamente a medida que se adiciona posições a ele. Acessando array através For($i=0;$i<3;$i++){ Echo $produto[$i]; } de loops OU Foreach ($produtos as $variavel){ echo $variavel; } PHP E MYSQL Array com diferentes índices O php suporta arrays em que podemos associar qualquer chave ou índice. Inicializando um array $produtos = array(‘one’=> 12, ‘maria’=>34, ‘joao’=>25); Sintaxe Apresenta-se o nome da chave seguido do sinal =>, e a seguir especifica o valor do campo. Acessando o conteúdo do array Echo $produto[‘joao’]; Echo $produto[‘one’] PHP E MYSQL Formas de criar Array com diferentes índices $produtos = array(‘one’=> 12); $produtos[‘joao’] = 34; $produtos[‘maria’] = 56; Usando loops para exibir o conteúdo do array. Foreach ($produtos as $temp){ Echo $temp } OU Foreach ($produtos as $Chave => $Valores){ Echo $Chave.” tem o conteúdo “. $Valores; } OU While( $elemento = each($produtos)){ echo $elemento[‘key’]; echo $elemento[‘value’]; } PHP E MYSQL Foreach ($produtos as $temp){ Echo $temp } OBTEM O CONTEÚDO DO ARRAY E ARMAZENA-O NA VARIÁVEL $TEMP EM CADA EXECUÇÃO DO LAÇO FOREACH. Foreach ($produtos as $Chave => $Valores){ Echo $Chave.” tem o conteúdo “. $Valores; } OBTEM A CHAVE DO ARRAY $PRODUTOS E ARMAZENA NA VARIÁVEL $CHAVE. OBTEM O CONTEÚDO DO ARRAY $PRODUTOS E ARMAZENA-O NA VARIÁVEL $VALORES EM CADA EXECUÇÃO DO LAÇO FOREACH. While( $elemento = each($produtos)){ echo $elemento[‘key’]; echo $elemento[‘value’]; } A FUNÇÃO EACH() RETORNA PARA A VARIAVEL $ELEMENTO UM ARRAY ONDE NA POSIÇÃO ‘KEY’ CONTÉM A CHAVE DO ARRAY $PRODUTOS, E NA POSIÇÃO ‘VALUE’ CONTÉM O CONTEÚDO DO ARRAY $PRODUTOS. PHP E MYSQL Construtor list Permite dividir um array em um conjunto de valores. $t = array(1,2,3,4,5); List($a,$b) = $t; PHP E MYSQL Array Multidimensionais Podemos criar array multidimensionais. Exemplos $valores=array(array(1,2,3), array(4,5,6)); Valores é composto por 2 linhas e 3 colunas. $Valores[0][0] //contem o valor 1 $Valores[0][1] //contem o valor 2 $Valores[0][2] //contem o valor 3 $Valores[1][0] //contem o valor 4 $Valores[1][1] //contem o valor 5 $Valores[1][2] //contem o valor 6 PHP E MYSQL Array Multidimensionais Exemplos $valores=array(array(“everton”,26), array(“joao”, 32)); Valores é composto por 2 linhas e 2 colunas. $Valores[0][0] //contem o valor Everton $Valores[0][1] //contem o valor 26 $Valores[1][0] //contem o valor Joao $Valores[1][1] //contem o valor 32 PHP E MYSQL Array Multidimensionais Percorrendo o vetor através de laços. $valores=array(array(1,2,3), array(4,5,6)); for($i=0;$i<2;$i++){ for($j=0;$j<3;$j++){ echo $valores[$i][$j].”<br>”; } } Exibindo um único valor do vetor Echo $valores[0][2]; PHP E MYSQL Classificando arrays Funções utilizadas para classificação de arrays. Classificação crescente Sort() Asort() Ksort() Classificação decrescente Rsort() Arsort() Krsort() PHP E MYSQL Classificando arrays Sort(<var_array>) A função sort() é utilizada para array com chaves numéricas. sort() classifica o array em ordem crescente. Exemplo $a = Array(1,4,5,2,7); $b = sort($a); $b estará ordenado por ordem crescente, ou seja, conterá os seguintes valores: 1,2,4,5,7. PHP E MYSQL Classificando arrays Asort(<var_array>) A função asort() é utilizada para ordenar array com chaves descritivas. Ela ordena os valores e trocam as ordens das chaves juntamente. $prices = array( ‘Tires’=>100, ‘Oil’=>10, ‘Spark Plugs’=>4 ); asort($prices); [Spark Plugs] => 4 [Oil] => 10 [Tires] => 100 PHP E MYSQL Classificando arrays Ksort(<var_array>) A função ksort() é utilizada para ordenar array com chaves descritivas. A função Ksort() ordena o array de acordo com o valor de cada chave(ou seja, índice). $a = Array(’b’=>1,‘a’=>5,’c’=>4); $b = ksort($a); $b estará ordenado por ordem crescente, ou seja, conterá os seguintes valores: [‘a’=>5,’b’=>1 , ’c’=>4] PHP E MYSQL Classificando arrays A classificação pode ser feita de forma decrescente, para isso o funcionamento da função é o mesmo, porém, de forma decrescente. As funções são: Rsort() Arsort() Krsort() PHP E MYSQL Descobrindo o tamanho de um array Sizeof(var_array) Retorna o número de elementos em um array. $a = array(1,2,3,4,5,6,7,8,9); Echo sizeof($a); //resultado 9 (indica 9 elementos) PHP E MYSQL Funções para manipulação de array Explode(string separator,string string) Retorna um array, conjunto de valores. Parâmetro separator indica qual string será utilizada como separador Parâmetro string indica qual string será quebrada em partes Um parametro limit pode ser passado para indicar o tamanho do array a ser criado. $x = “15:42, 20th April\t4 tires\t1 oil\t6 spark plugs\t$434.00” $t = explode (“\t”, $x); // retorno sera um array Echo $t[0];//15:42, 20th April Echo $t[1];//4 tires PHP E MYSQL Funções para manipulação de array Função extract Cria variáveis escalares com o conteúdo do array. Os nomes das variáveis serão os nomes definidos na chave do array. $array = array( ‘key1’ => ‘value1’, ‘key2’ => ‘value2’, ‘key3’ => ‘value3’); extract($array); echo “$key1 $key2 $key3”; PHP E MYSQL Outras funções para manipulação de array poderá ser encontrado em: http://br2.php.net/manual/en/ref.array.php Capítulo 3 do livro. PHP e MySql Desenvolvimento Web Luke Welling Laura Thonson