+1

Arrays - parte 2

criado por Roberto Bertó em 12/12/2000 12:00pm
Continuando o mini tutorial da semana passada sobre os Arrays, vou escrever sobre várias funções de Arrays, a saber:

array_pop()     => Retira e retorna o ultimo elemento de um array
array_push()    => Insere um ou mais elementos no fim de um array
array_rand()    => Retorna um ou mais valores de um array
array_reverse() => Retorna um array com a ordem inversa
array_shift()   => Retira e retorna o primeiro elemento de um array

Para fins de todos os exemplos iremos levar em considereção o array $saladas abaixo:

Entao, digamos que para todos os exemplos tenhamos o seguinte array:

<?php
$saladas = array(
"Couve",
"Cenoura",
"Alface",
"Agrião",
"Repolho",
"Tomate",
"Radite",
"Couve-Flor"
);
?>

- array_pop()
<?php

// sizeof retorna o numero de elementos de um array
// ira imprimir: "8";
print sizeof($saladas);

// retorna o ultimo elemento e remove-o do array
$elemento = array_pop($saladas);

// ira imprimir: "7";
print sizeof($saladas) ;

// ira imprimir o ultimo elemento que foi removido do array 
print $elemento;
// retornara: "Couve-Flor";
?>

Como voce pode observar o array_pop retira o ultimo valor do array e retorna o que ele retirou.

- array_shift()

<?php
// ira imprimir: "8";
print sizeof($saladas); 


// retorna e remove do array o primeiro elemento
$elemento = array_shift($saladas);

// ira mostra: "7"
print sizeof($saladas) . "<br>"; 

// mostra: "Couve";
print $elemento; 
?>

Faz a mesma coisa que o array_pop porem ele traz o primeiro elemento.

- array_rand()

<?php
print array_shift($saladas) . "<br>"; #impriem "Couve";

// altera a ordem de randomizacao do PHP
srand ((double) microtime() * 1000000);

// pega um item aleatorio
$saladas = array_rand($saladas);

// ira imprimir aleatoriamente algo;
print array_shift($saladas) . "<br>";

?>


Note que se voce tirar o array_rand voce tera impresso "Cenoura".

- array_reverse()
<?php

// inverte o array
$saladas = array_reverse($saladas);

// ira imprimir "Couve-Flor" 
print array_shift($saladas) . "<br>";

?>


Ele inverte os arrays. Entao, um array_shift() sera a mesma coisa que um array_pop()


- array_push()

<?php
// adiciona Beterraba no array
array_push($saladas, "Beterraba");

// ira imprimir: "9";
print sizeof($saladas) . "<br>";
?>

Ele insere um valor no fim do array. Uma das funcoes mais uteis de tratamento de arrays.


Mais informações:
http://www.php.net/manual/function.array-pop.php
http://www.php.net/manual/function.array-push.php
http://www.php.net/manual/function.array-rand.php
http://www.php.net/manual/function.array-reverse.php
http://www.php.net/manual/function.array-shift.php

Comentários:

Mostrando 1 - 3 de 3 comentários
Bem sei que no PHP vc pode usar arrays sem declarar simplesmente direto, não tive problemas ao usar um array unidirecional no meu script sem declara-lo para atribuir valores a ele usava "$arrayoqualquer[0]= qualquer coisa" porem ao atribuir valores a um array bidirecional tive problemas "$arraybi[1][0]= qq coisa" por exemplo e ele considerou o segundo indice como se fosse uma substring do primeiro será que vc poderia me explicar esse dilema, e mais uma pregunta em posso retornar arrays completos em uma função por exemplo "return $arraybi?
29/01/2004 4:02pm (~20 anos atrás)

Nao tem erro nisso. O array_pop remove um item do array e o retorna.

Veja em: http://www.php.net/manual/pt_BR/function.array-pop.php


A função size_of() está errado, nao sei por que utilizei isso. Usem sizeof() ou count().
21/01/2003 9:45pm (~21 anos atrás)

Rafael Zanoni disse:
Não está errado??

<?PHP
print size_of($saladas);
// ira imprimir: \"8\";
// size_of retorna o numero de elementos de um array

$elemento = array_pop($saladas);
print size_of($saladas);
// ira imprimir: \"7\"; << aqui ele iria retornar 8 pois atribuido a variável $elemento ao array_pop para retornar apenas 1 ele não iria tirar 1, certo?

quando vc colocou size_of($saladas) >> seriam retornadas '8'
21/01/2003 1:40pm (~21 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)