domingo, 27 de julio de 2014

Las tablas o arrays en PHP - 2 de 2



4. Función en las tablas
  • a. Longitud de una tabla

La función count() o sizeof() permiten conocer el número de elementos de una tabla, por ejemplo:

<?php
//creación de la tabla
$tabla = array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,’Pepe’=>’Pedro’,
’H’=>’Alonso’);
$thisSize = count($tabla);
echo ’El tamaño de la tabla es:’.$thisSize;
?>

Da como resultado:

5

La sintaxis es:

$numero_de_elementos = count($tabla);

con $numero_de_elementos de tipo numérico

Esta función devuelve 0 si la tabla está vacía.

  • b. Existencia de un valor en una tabla

La función in_array() permite buscar un elemento en una tabla.

Por ejemplo:

<?php
//creación de la tabla
$tabla = array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,’Pepe’=>’Pedro’,
’H’=>’Alonso’);
if (in_array(’Roberto’,$tabla)) {
echo ’Roberto está en la tabla’;
}
?>

Da como resultado:

Roberto está en la tabla

Por tanto, su sintaxis es:

$presencia = in_array($valor_búsqueda,$tabla);

con $presencia de tipo booleano.

Esta función puede tomar un tercer argumento, que consiste en comprobar el tipo de valor que se encuentra con respecto al valor deseado. Este argumento es una variable booleana que tiene un valor falso por defecto, es decir, no tiene en cuenta el tipo.

Explicación: una tabla tiene el valor ’33’ pero se está buscando la cifra 33. No son del mismo tipo, ya que ’33’ es del tipo string (cadena de caracteres) y 33 es de tipo numérico.

Ejemplo:

<?php
//creación de la tabla
$tabla = array(’10’,’33’,’33’,’78’);
if (in_array(33,$tabla, true)) { // añadir true para tener en cuenta
// el tipo
echo ’33 está en la tabla’;
} else {
echo "33 no está en la tabla";
}
?>

Da como resultado:

33 no está en la tabla

La función busca en la tabla el número 33, pero solamente existe la cadena de caracteres ’33’.

La sintaxis con el tipo opcional es:

$presencia = in_array($valor_buscado,$tabla,$tipo_equivalente);

con $presencia y $tipo_equivalente de tipo booleano.

  • c. Existencia de una clave en una tabla

La función array_key_exists() permite conocer la existencia de una clave en una tabla.

Por ejemplo:

<?php
//creación de la tabla
$tabla = array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,
’Pepe’=>’Pedro’,’H’=>’Alonso’);
if (array_key_exists(3,$tabla)) {
echo ’La clave 3 está en la tabla’;
}
?>

Da como resultado:

La clave 3 está en la tabla

La sintaxis es:

$presencia = array_key_exists($Clave_buscada,$tabla);

con $presencia de tipo booleano.

Otro ejemplo:

<?php
//creación de la tabla
$tabla = array(’Juan’,’Roberto’,’Pablo’,’Pedro’,’Alonso’);
if (array_key_exists(4,$tabla)) {
echo ’La Clave 4 está en la tabla, su valor es:’.$tabla[4];
}
?>

Da como resultado:

La Clave 4 está en la tabla. Su valor es: Alonso

  • d. Ordenar una tabla

Existen varias funciones que permiten ordenar una tabla. Algunas ordenan en orden descendente, otras siguiendo la clave y no el valor, etc.
  • sort(): ordena los valores de menor a mayor.

Por ejemplo:

<?php
//creación de la tabla
$tabla =
array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,’Pepe’=>’Pedro’,
’H’=>’Alonso’);
sort($tabla); //ordena la tabla
foreach ($tabla as $clave=>$valor) {
echo ’Clave:’.$clave.’, valor:’.$valor.’<br />’;
}
?>

Da como resultado:

Clave:0, valor:Alonso
Clave:1, valor:Juan
Clave:2, valor:Pedro
Clave:3, valor:Pablo
Clave:4, valor:Roberto

La función sort() pierde la clave de origen. Ya no tiene la clave ’H’ para ’Alonso’, sino 0. Las claves de origen se sustituyen por un número creciente, comenzando desde 0.

  • asort(): ordena los valores de menor a mayor, conservando la pareja clave/valor.

Por ejemplo:

<?php
//creación de la tabla
$tabla =
array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,’Pepe’=>’Pedro’,
’H’=>’Alonso’);
asort($tabla); //ordena la tabla conservando la clave
foreach ($tabla as $clave=>$valor) {
echo ’Clave:’.$clave.’, valor:’.$valor.’<br />’;
}
?>

Da como resultado:

Clave:H, valor:Alonso
Clave:A1, valor:Juan
Clave:Pepe, valor:Pedro
Clave:3, valor:Pablo
Clave:B4, valor:Roberto

Esta vez las claves se han conservado correctamente.

  • rsort(): ordena los valores de mayor a menor.

Por ejemplo:

<?php
//creación de la tabla
$tabla =
array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,’Pepe’=>’Pedro’,
’H’=>’Alonso’);
rsort($tabla); //ordena la tabla del valor más grande al más pequeño
foreach ($tabla as $clave=>$valor) {
echo ’Clave:’.$clave.’, valor:’.$valor.’<br />’;
}
?>

Da como resultado:

Clave:0, valor:Roberto
Clave:1, valor:Pablo
Clave:2, valor:Pedro
Clave:3, valor:Juan
Clave:4, valor:Alonso

  • arsort(): ordena los valores de mayor a menor, conservando la pareja clave/valor.


Por ejemplo:

<?php
//creación de la tabla
$tabla =
array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,’Pepe’=>’Pedro’,
’H’=>’Alonso’);
arsort($tabla); //ordena la tabla conservando la clave
foreach ($tabla as $clave=>$valor) {
echo ’Clave:’.$clave.’, valor:’.$valor.’<br />’;
}
?>

Da como resultado:

Clave:B4, valor:Roberto
Clave:3, valor:Pablo
Clave:Pepe, valor:Pedro
Clave:A1, valor:Juan
Clave:H, valor:Alonso

  • ksort(): ordena las claves de la tabla de la más pequeña a la más grande, conservando la pareja clave/valor.

Por ejemplo:

<?php
//creación de la tabla
$tabla =
array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,’Pepe’=>’Pedro’,
’H’=>’Alonso’);
ksort($tabla); //ordenar la tabla siguiendo la clave
foreach ($tabla as $clave=>$valor) {
echo ’Clave:’.$clave.’, valor:’.$valor.’<br />’;
}
?>

Da como resultado:

Clave:A1, valor:Juan
Clave:B4, valor:Roberto
Clave:H, valor:Alonso
Clave:Pepe, valor:Pedro
Clave:3, valor:Pablo

  • krsort(): ordena las claves de la tabla de mayor a menor, conservando la pareja clave/valor.

Por ejemplo:

<?php
//creación de la tabla
$tabla =
array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,’Pepe’=>’Pedro’,
’H’=>’Alonso’);
krsort($tabla); //ordenar la tabla de manera descendente siguiendo
la clave
foreach ($tabla as $clave=>$valor) {
echo ’Clave:’.$clave.’, valor:’.$valor.’<br />’;
}
?>

Da como resultado:

Clave:3, valor:Pablo
Clave:Pepe, valor:Pedro
Clave:H, valor:Alonso
Clave:B4, valor:Roberto
Clave:A1, valor:Juan

  • e. Búsqueda en una tabla

La función array_search() equivale a in_array(). Permite buscar un elemento en una tabla, pero vuelve a enviar la clave del elemento que se ha buscado.

Por ejemplo:

<?php
//creación de la tabla
$tabla = array(’A1’=>’Juan’,’B4’=>’Roberto’,3=>’Pablo’,’Pepe’=>’Pedro’,
’H’=>’Alonso’);
$clave_elemento = array_search(’Roberto’,$tabla);
echo "La clave del elemento buscado es:".$clave_elemento;
?>

Da como resultado:

La clave del elemento buscado es: B4

La sintaxis es:

$clave = array_search($valor_buscado,$tabla);

Otro ejemplo:

<?php
//creación de la tabla
$tabla = array(’Juan’,’Roberto’,’Pablo’,’Pedro’,’Alonso’);
$clave_elemento = array_search(’Roberto’,$tabla);
echo "La clave del elemento buscado es:".$clave_elemento;
?>

Da como resultado:

La clave del elemento buscado es:1

La clave del elemento ’Roberto’ es 1, porque la clave de la tabla empieza por 0.

  • f. Recorrer una cadena de caracteres en una tabla

La función explode() permite recorrer una cadena en una tabla, utilizando un separador.

Por ejemplo:

<?php
$conjunto = "1;2;3;4;5";
$tabla = explode(";",$conjunto);
echo "El primer valor de la tabla es:".$tabla[0]."<br />";
echo "El segundo valor de la tabla es:".$tabla[1];
?>

Da como resultado:

El primer valor de la tabla es:1
El segundo valor de la tabla es:2

La sintaxis es:

$tabla_recortada = explode($separador,$cadena_a_recortar);

Otro ejemplo:

<?php
$conjunto = "1-2-3-4-5";
$tabla = explode("-",$conjunto);
echo "Los valores de la tabla son:";
foreach ($tabla as $valor) {
echo $valor.";";
}
?>

Da como resultado:

Los valores de la tabla son:1;2;3;4;5;

  • g. Reagrupar los valores de una tabla en una cadena


La función implode() permite reagrupar los valores de una tabla en una cadena, utilizando un separador.

Por ejemplo:

<?php
$tabla = array("Juan","Roberto","Pablo");
$nombres = implode(";",$tabla);
echo "Los nombres son:".$nombres;
?>

Da como resultado:

Los nombres son:Juan;Roberto;Pablo

La sintaxis es:

$cadena = implode($separador,$tabla);


Otro ejemplo:

<?php
$tabla = array(5=>"Juan",3=>"Roberto",2=>"Pablo");
$nombres = implode("-",$tabla);
echo "Los nombres son:".$nombres;
?>

Da como resultado:

Los nombres son:Juan-Roberto-Pablo

Como puede observar, las claves de una tabla no tienen ningún efecto en la función implode().

  • h. Trocear una cadena con una longitud fija

La función str_split() permite trocear en la tabla una cadena de longitud fija, utilizando un parámetro que indica el tamaño de los trozos de la cadena.

Por ejemplo:

<?php
$conjunto="1;2;3;4;5";
$tabla=str_split($conjunto,2);
echo "Los elementos son:";
foreach ($tabla as $valor) {
echo $valor." ";
}
?>

Da como resultado:

Los elementos son:1;2;3;4;5;

Por tanto, su sintaxis es:

$tabla=str_split($cadena,$longitud);

Otro ejemplo:

<?php
$conjunto="11=12=13=14=15";
$tabla=str_split($conjunto,3);
echo "Los elementos son:";
foreach ($tabla as $valor) {
echo $valor."<br/>";
}
?>

Da como resultado:

Los elementos son:11=
12=
13=
14=
15=

  • i. Añadir elementos al final de la tabla

La función array_push() permite añadir uno varios elementos al final de la tabla.

Por ejemplo:

<?php
$tabla = array("Juan","Roberto","Pablo");
array_push($tabla,"Pedro","Alonso");
echo $tabla[4];
?>

Da como resultado:

Alonso

Por tanto, su sintaxis es:

array_push($tabla,$valor1,$valor2,...);

Otro ejemplo:

<?php
$tabla = array();
for ($i=0;$i<=10;$i++) {
array_push($tabla,$i);
echo $tabla[$i].";";
}
?>

Da como resultado:

0;1;2;3;4;5;6;7;8;9;10;

  • j. Eliminar un elemento al final de la tabla

La función array_pop() permite eliminar un elemento al final de la tabla y devolver su valor.

Por ejemplo:

<?php
$tabla = array("Juan","Roberto","Pablo");
$nombre = array_pop($tabla);
echo "El nombre eliminado es:".$nombre;
?>

Da como resultado:

El nombre eliminado es:Pablo

Por tanto, su sintaxis es:

$valor_eliminado=array_pop($tabla);

Otro ejemplo:

<?php
$tabla = array("Juan","Roberto","Pablo");
echo "Antes de la eliminación, el número de elementos en la tabla
es:".count($tabla)."<br />";
$numero_elementos = count($tabla);
for ($i=0;$i<$numero_elementos;$i++) {
$nombre = array_pop($tabla);
}
echo "El último nombre eliminado es:".$nombre."<br />";
echo "Después de la eliminación, el número de elementos de la tabla
es:".count($tabla);
?>

Da como resultado:

Antes de la eliminación, el número de elementos en la tabla es:3
El último nombre eliminado es:Juan
Después de la eliminación, el número de elementos de la tabla es:0

  • k. Selección de un elemento de la tabla de forma aleatoria

La función array_rand() permite seleccionar uno a varios elementos de una tabla de forma aleatoria y devolver las claves correspondientes.

Por ejemplo:

<?php
$tabla = array("Juan","Roberto","Pablo");
$clave_aleatoria = array_rand($tabla);
echo "El nombre seleccionado al azar es:".$tabla[$clave_aleatoria];
?>

Da como resultado:

El nombre seleccionado al azar es:Roberto (o Juan o Pablo)

Por tanto, su sintaxis es:

$clave_seleccionada=array_rand($tabla, $numero_seleccionado);

El parámetro $numero_seleccionado es opcional, por defecto es igual a 1. Corresponde al número de valores que se toman al azar. El siguiente ejemplo utiliza:

<?php
$tabla = array("Juan","Roberto","Pablo");
$tabla_clave_aleatoria = array_rand($tabla,2);
echo "El primer número seleccionado al azar es:"
tabla[$tabla_clave_aleatoria[0]]."<br />";
echo "El segundo número seleccionado al azar es:"
tabla[$tabla_clave_aleatoria[1]];
?>

La $tabla_clave_aleatoria es una tabla que contiene las claves de los elementos seleccionados al azar. Si $tabla_clave_aleatoria[0] contiene la clave del primer elemento seleccionado al azar, su valor se obtiene por $tabla[$tabla_clave_aleatoria[0]].

El número seleccionado no debe ser igual o superior al número de elementos de la tabla.


  • 5. Tabla de varias dimensiones


Una tabla de varias dimensiones es una tabla dentro otra. Puede ser muy útil si quiere almacenar información relacionada.



Espero haber ayudado en algo. Hasta la próxima oportunidad!







No hay comentarios:

Publicar un comentario

       
free counters

Páginas vistas en total según Google