Desarrollo de aplicaciones web con PHP y MySQL
Vectores en PHP
Sergio Sáez y José Luis Poza
© 2015 Sergio Sáez y José Luis Poza

1. ¿Qué es un vector?

2. Vectores indexados numéricamente

<?php int count(array vector); ?>

3. Vectores asociativos

4. Recorriendo un vector asociativo

<?php array each (array vector); ?>
<?php void list (mixed ...) ?>

5. Recorriendo vectores

<?php mixed reset (array vector); ?>
<?php mixed end (array vector); ?>
<?php mixed next (array vector); ?>
<?php mixed prev (array vector); ?>
<?php mixed current (array vector); ?>
<?php mixed key (array vector); ?>

No son funciones seguras si el vector contiene elementos cuyo valor se evalúa a false.

<?php foreach(expresion_array as $valorsentencia?>
<?php foreach(expresion_array as $clave => $valorsentencia?>

6. Comprobaciones y borrados

 <?php
 $cervezas 
= array("Heineken" => 4"Mahou" => 7,
                   
"Aguila" => 12"Estrella" => 9);
 if (isset(
$cervezas["Voll-Damm"])) {
   echo 
"Ponme un par de Voll-Damms";
 } else {
   echo 
"Cómo que no hay Voll-Damm? Bueno, pues un par de Mahous";
 }
 unset(
$cervezas["Mahou"]); // Borra el elemento "Mahou"
 
if (array_key_exists("Mahou"$cervezas)) {
   echo 
"Mmmmhhh!";
 } else {
   echo 
"Que tampoco hay Mahou. Pues nada ... que sea una gaseosa";
 }
 
?>
 <?php
 $cervezas 
= array("Heineken""Mahou""Aguila""Estrella");
 if (
in_array("Voll-Damm"$cervezas)) {
   echo 
"Ponme un par de Voll-Damms";
 } else {
   echo 
"Cómo que no hay Voll-Damm? Bueno, pues un par de Mahous";
 }
 
$clavearray_search("Mahou"$cervezas); // Busca el elemento "Mahou"
 
unset($cervezas[$clave]); // Borra el elemento "Mahou"
 
if (in_array("Mahou"$cervezas)) {
   echo 
"Mmmmhhh!";
 } else {
   echo 
"Que tampoco hay Mahou. Pues nada ... que sea una gaseosa";
 }
 
?>

7. Estructuras de datos en PHP

array_push
Añade un elemento al final del vector.
array_pop
Extrae el último elemento del vector.
array_shift
Extrae el primer elemento del vector desplazando las claves.

8. Vectores predefinidos

$_SERVER: Información sobre el servidor.

$_ENV: Información sobre el entorno de ejecucíón del interprete.

$_GET: Contiene las variables de los formularios enviados mediante el método "GET".

$_POST: Idem, pero mediante el método "POST".

$_COOKIE: Contiene las galletas enviadas desde el cliente.

$_FILES: Información sobre los ficheros recibidos.

$_REQUEST = $_COOKIE + $_GET + $_POST + $_FILES.

$_SESSION: Contiene las variables de la sesión actual.

9. Vectores multidimensionales

10. Ordenación de vectores

<?php void sort (array vector); ?>
<?php
  $productos
=
      array(
"Frenos""Aceite""Ruedas");
  
sort($productos);
  
print_r($productos);
?>
Array
(
    [0] => Aceite
    [1] => Frenos
    [2] => Ruedas
)
<?php void rsort (array vector); ?>
<?php void asort (array vector); ?>
<?php $precios= array("Frenos" => 150,
                      
"Aceite" => 10,
                      
"Ruedas" => 100);
  
asort($precios);
  
print_r($precios);
?>
Array
(
    [Aceite] => 10
    [Ruedas] => 100
    [Frenos] => 150
)
<?php void arsort (array vector); ?>
<?php void ksort (array vector); ?>
<?php $precios= array("Frenos" => 150,
                      
"Aceite" => 10,
                      
"Ruedas" => 100);
  
ksort($precios);
  
print_r($precios);
?>
Array
(
    [Aceite] => 10
    [Frenos] => 150
    [Ruedas] => 100
)
<?php void krsort (array vector); ?>

11. Convertir un vector a escalares

<?php void extract (array vector_vars [, int tipo_extraccion
                 
[, string prefijo]]); ?>
<?php
$precios
= array("Frenos" => 150,
                
"Aceite" => 10,
                
"Ruedas" => 100);

extract($preciosEXTR_OVERWRITE);
var_dump($Frenos); var_dump($Aceite); var_dump($Ruedas);
?>
int(150) int(10) int(100)
<?php
import_request_varibles
("gp""f_");
?>
<?php
extract
($_GET,EXTR_PREFIX_ALL"f");
extract($_POST,EXTR_PREFIX_ALL"f");
?>