Laboratorio 04: Uso de arrays en PHP

USO DE ARRAYS PHP 


Ejemplos de experimentación y análisis:

Ejemplo 1: array $frutas1, matriz indexada; usa índices numéricos de acceso a cada elemento

array_ejmp01.php
<?php
//definir matriz
$frutas = array("manzana", "piña", "uva");
echo "Fruta de primera celda: $frutas[0] <br>";
echo "Fruta de segunda celda: $frutas[1] <br>";
echo "Fruta de tercera celda: $frutas[2] <br>";
?>



Ejemplo 2: array $frutas2, matriz asociativa; remplaza el índice de indexación por palabras clave definidas por el programador. Las palabras clave son únicas y la relación de PalabraClave-Valor se establece con el símbolo conector =>; el acceso es por palabra clave.


array_ejmp02.php
<?php
//definir matriz
$frutas = array(
    'm' => 'manzana',
    'p' => 'pera',
    'n' => 'naranja'
);
echo "Fruta de primera celda:". $frutas['m'] ."<br>";
echo "Fruta de segunda celda:". $frutas['p'] ."<br>";
echo "Fruta de tercera celda:". $frutas['n'] ."<br>";
?>



METODOS DE ASIGNACION DE VALORES:

Usando un listado de valores separadas por comas en la función array() aplicando la sintaxis:

$nombreMatriz = array(dato, dato,…)

Ejemplo 3: array $autos1


array_empl.php
<?php
//definir matriz
$autos = array('Toyota', 'Hyudai', 'Ford');
echo "Auto de primera celda: $autos[0] <br>";
echo "Auto de segunda celda: $autos[1] <br>";
echo "Auto de tercera celda: $autos[2] <br>";
?>




Usando notaciones indexadas por números, aplicando la sintaxis:

$nombreMatriz[0] = dato

Ejemplo 4: array $autos2

array_ejmp.php
?php
//definir matriz
$autos2[0]='Suzuqui';
$autos2[1]='Nissan';
$autos2[2]='Ford';
echo "Auto de primera celda: $autos2[0] <br>";
echo "Auto de segunda celda: $autos2[1] <br>";
echo "Auto de tercera celda: $autos2[2] <br>";
?>




Otros modos de asignación:

Ejemplo 5: Asignación automática

array_ejmp05.php
<?php
//definir matriz
$autos3[]='Toyota';
$autos3[]='Nissan';
$autos3[]='Ford';
echo "Auto de primera celda: $autos3[0] <br>";
echo "Auto de segunda celda: $autos3[1] <br>";
echo "Auto de tercera celda: $autos3[2] <br>";
?>



Ejemplo 6: Alternativa en matriz asociativa

array_ejmp06.php
<?php
//definir matriz
$usuario = array(
    'nombreUsuario' => 'Pedro',
    'password' => 'ppd',
    'servidor' => '192.168.0.1'
);
echo "La contarseña es:".$usuario['password'];
?>



Ejemplo 7: Otra Alternativa en matriz asociativa

array_ejmp07.php
<?php
//definir matriz
$usuario2['nombre']='Pedro Pablo Diaz';
$usuario2['clave']='ppd';
$usuario2['server']='198.160.0.1';
echo "El usuario es:".$usuario2['nombre'];
?>



Ejemplo 8: matriz $usuario

array_ejmp08.php
<?php
//definir matriz
$usuario3 = array (
    'nombre' => 'Pedro Pablo',
    'clave' => 'ppd',
    'server' => '198.160.0.1'
);
echo "El usuario es:".$usuario3['nombre'];
?>



Ejemplo 9: modificar, eliminar valores

array_ejmp09.php
<?php
//definir matriz
$autos = array('Toyota', 'Hyudai', 'Ford');
echo "Auto de primera celda: $autos[0] <br>";
echo "Auto de segunda celda: $autos[1] <br>";
echo "Auto de tercera celda: $autos[2] <br>";
//modificar dato
$autos[1]='Nissan';
echo "Auto de primera celda: $autos[0] <br>";
echo "Auto de segunda celda: $autos[1] <br>";
echo "Auto de tercera celda: $autos[2] <br>";
//eliminar dato
unset($autos[1]);
echo "Auto de primera celda: $autos[0] <br>";
echo "Auto de segunda celda: $autos[1] <br>";
echo "Auto de tercera celda: $autos[2] <br>";
?>



RECUPERAR TAMAÑO:

Para obtener el tamaño o cantidad de elementos de la matriz, se puede hacer con la función count(), sizeof().

Ejemplo 10: tamaño de array $datos

array_ejmp10.php
<?php
//definir matriz
$autos3[]='Toyota';
$autos3[]='Nissan';
$autos3[]='Ford';
echo "La matriz tiene:".count($autos3). " elementos <br>";
?>



MATRICES ANIDADAS o Multiarrays:

PHP permite combinar matrices colocando una dentro de la otra sin limite de profundidad.

Ejemplo 11: matriz indexada que anida una matriz asociativa

array_ejmp11.php
<?php
//def mat
$directorio = array(
    array(
        'nombre' => 'Pedro P Diaz',
        'telefono' => '464006',
        'correo' => 'admisionppd@gmail.com'
    ),
    array(
        'nombre' => 'Sheyla Vargas',
        'telefono' => '943464006',
        'correo' => 'rosava@gmail.com'
    )
);
//acceso
echo "Telefono del instituto:".$directorio[0]['telefono'];
?>



PROCESO DE MATRICES CON BUCLES:

Se puede aplicar bucles for(), while()

Ejemplo 12: uso de bucles para procesar matrices

array_ejmp12.php
<?php
//definición de matriz
$ciudades = array ("Lima", "Arequipa","Trujillo","Tacna");
//listado con for()
echo "Listado con for() <br>";
for($i=0; $i<count($ciudades);$i++)
    {
        echo $ciudades[$i]."<br>";
    }
echo "Listado con while()) <br>";
$i=0;
while($i <  count($ciudades))
    {
        echo $ciudades[$i]."<br>";
        $i++;
    }
?>



EL BUCLE foreach:

Diseñado para hacer iteraciones sobre matrices, cada vez que se ejecuta este bucle, el elemento en uso de la matriz es asignado a una variable temporal. Este bucle tiene un recorrido automático de inicio a fin de los elementos de la matriz.

Ejemplo 13: uso de bucle foreach

array_ejmp13.php
<?php
//definición de matriz
$ciudades = array ("Lima", "Arequipa","Trujillo","Tacna","Iquitos");
//listado con foreach
echo "Listado con foreach() <br>";
foreach($ciudades as $c)
    {
        echo $c."<br>";
    }
?>



Ejemplo 14: uso de bucle foreach con matriz asociativa

array_ejmp14.php
<?php
//def mat
$paises = array(
    "Peru" => "Lima",
    "Francia" => "Paris",
    "India" => "Nueva Delhi"
);
//listado
foreach($paises as $clave => $valor)
    {
        echo "$valor es la capital de $clave  <br>";
    }
?>



EL ITERADOR DE MATRICES:

Para ello usa un objeto de la clase ArrayIterator que inicializa la matriz. Además aplica las funciones: rewind() para colocar puntero al primer elemento, valid() para saber si hay dato valido, key() para palabra clave, current() para valores asociados, next() avanza el puntero de acceso.

Ejemplo 15: uso de iterador

array_ejmp15.php
<?php
//definición de matriz
$paises = array(
    "Peru" => "Lima",
    "Francia" => "Paris",
    "India" => "Delhi"
);
//crea objeto ArrayIterador
$iterador = new ArrayIterator($paises);
//puntero al inicio
$iterador->rewind();
//listado
while($iterador->valid())
{
    echo $iterador->current()." es capital de ".$iterador->key()."<br>";
    $iterador->next();
}
?>



TAREA: Desarrollar los siguientes ejercicios utilizando arrays, publicarlos en el Blog personal del estudiante y luego pegar el enlace como entrega de tarea en el aula virtual:

a)      Se tiene el siguiente array de notas de alumnos $notas con los notas: 16, 12, 18, 16 ,19, 11, 14, 18, 10, 8, 15, 18, 20, 18,6,8,9,13,12,15,14,17,18 . Determinar promedio general, número de alumnos excelentes (17..20), buenos (14..16), regulares 13, jalados (0..12).

tarea_a.php
<?php
$notas = array(16,12,18,16,19,11,14,18,10,8,15,18,20,18,6,8,9,13,12,15,14,17,18);
$cont=0;
$cont2=0;
$Excelentes=0;
$buenos=0;
$regulares=0;
$jalados=0;
for ($i=0; $i < count($notas); $i++) {
    $cont=$cont+1;
    $cont2=$cont2+$notas[$i];
    if ($notas[$i]>=17 && $notas[$i]<=20) {
        $Excelentes=$Excelentes+1;
    }
    elseif ($notas[$i]>=14 && $notas[$i]<=16) {
        $buenos=$buenos+1;
    }
    elseif ($notas[$i]==13) {
        $regulares=$regulares+1;
    }
    elseif ($notas[$i]>=0 && $notas[$i]<=12) {
        $jalados=$jalados+1;
    }

}
$prome=$cont2/$cont;
echo "el promedio general es ".floor($prome);

echo "<br>ALUMNOS Excelentes : $Excelentes";
echo "<br>ALUMNOS buenos : $buenos";
echo "<br>ALUMNOS regulares : $regulares";
echo "<br>ALUMNOS jalados : $jalados";
?>




b)      Cargar un array con las temperaturas promedio diarias, determine temperatura máxima y día de ocurrencia, temperatura mínima y día de ocurrencia, temperatura promedio mensual.

tarea_b.php
<?php
$temp = array(
    "lunes"=>25
    "martes"=>26
    "miercoles"=>22
    "jueves"=>19
    "viernes"=>21
    "sabado"=>25
    "domingo"=>27
);
$cont=0;
$cont2=0;
$max=0;
$min=0;
$prom=0;
foreach($temp as $clave => $valor)
    {
        echo "$valor °C del dia $clave  <br>";

        $cont=$cont+$valor;

       
    }
echo "<br>La temperatura promedio es ".$cont/7;
echo "<br>La temperatura minima fue °".min($temp)." Dia Viernes";
echo "<br>La temperatura maxima fue °".max($temp)." Dia Sabado";
?>






c)      Ingresar a un array las 24 regiones de Perú y luego listarlas usar for, while

tarea_c.php
<?php
$reg=array("Amazonas", "Ancash", "Apurimac", "Arequipa", "Ayacucho", "Cajamarca", "Callao", "Cusco","Huancavelica", "Huanuco",
"Ica", "Junín", "La Libertad", "Lambayeque", "Lima", "Loreto", "Madre de Dios", "Moquegua", "Pasco", "Piura", "Puno", "San Martín", "Tacna", "Tumbes", "Ucayali");
   
for($i=0; $i<count($reg);$i++)

    {

        echo $reg[$i]."<br>";

    }
    echo "-------------------------------------------- <br>";
echo "Listado con while()) <br>";

$i=0;

while($i <  count($reg))

    {

        echo $reg[$i]."<br>";

        $i++;

    }

?>




            d)      Ingresar en un array los países de Latinoamérica y luego listarlos, usar foreach.

tarea_d.php
<?php
$latam=array("bolivia", "argentina", "Ecuador", "Paraguay", "Brasil", "colombia", "Peru", "Chile", "Uruguay "," venezuela");
foreach($latam as $c){

    echo "-$c";
}
?>






Comentarios