Ejemplos de código PHP (Parte 5: Matrices)


  En esta entrada del blog se verán varios ejemplos de código PHP relacionados con las matrices (para conocer los detalles sobre las matrices, ver el siguiente enlace).
  Como siempre, se expondrá una situación y se enseñará una posibilidad de código que la hace posible.
  Los códigos aquí mostrados han sido probados y funcionan sin problemas.

  Este programa rellena una matriz con 1000 números aleatorios entre 1 y 10.

<?php
            for ($i = 0; $i < 1000; $i++) {
                $valor[$i] = rand(1, 10);
            }
            foreach ($valor as $i) {
                echo $i. ".  ";
            }   
        ?>
_________________________________________________________________________

  Partiendo del código del ejemplo anterior, el programa de este ejemplo cuenta el número de veces que aparece un número determinado en dicha matriz aleatoria.

<?php
            $numero = 5;
            $cantidad = 0;
            for ($i = 0; $i < 1000; $i++) {
                $valor[$i] = rand(1, 10);
            }
            foreach ($valor as $elemento) {   
                if ($elemento == $numero) {
                    $cantidad++;
                }
            }
            echo "</br> El número ". $numero. " se repite ". $cantidad. " veces.";
        ?>


_________________________________________________________________________

  Este código parte de una matriz asociativa que almacena ciudades y su número de habitantes, y devuelve la ciudad con mayor número de habitantes.

<?php
            $max = 0;
            $ciudades = array("Atenas" => 100000, "Berlín" => 200000, "Vigo" => 110000);
            foreach ($ciudades as $ciudad => $poblacion) {
                if ($poblacion >= $max) {
                    $max = $poblacion;
                    $ciudadmax = $ciudad;
                }
            }
            echo "La ciudad con mayor población es ". $ciudadmax. "."
        ?>

_________________________________________________________________________

  El código de este ejemplo suma dos vectores (en el sentido informático; se suma cada una de las coordenadas de cada vector entre sí).

<?php
            $x = 4;
            $y = 6;
            $x2 = 3;
            $y2 = 9;
            $vector1 = [$x, $y];
            $vector2 = [$x2, $y2];
            $cantidad1 = count($vector1);
            $cantidad2 = count($vector2);
            if ($cantidad1 == $cantidad2) {
                foreach ($vector1 as $i=>$v) {
                    $suma[$i] = $vector1[$i] + $vector2[$i];    
                }                   
            }
            foreach ($suma as $v) {
                echo $v. "</br>";
            }
        ?>

_________________________________________________________________________

    En este caso, se creará una suma de dos vectores pero utilizando una función.

<?php
        function sumaVectores ($vector1, $vector2) {
            $vector3 = null;
            if (count($vector1) == count($vector2)) {
                foreach($vector1 as $clave => $valor) {
                    $vector3[] = $vector1[$clave] + $vector2[$clave];
                }
            }
            return $vector3;
        }
        

        // Descomentar una de las opciones de pares de matrices para probarlo.
        /*$array1 = [5,4,6,8,4,3,6,7,8,4,3,55,66];
        $array2 = [7,8,2,3,5,7];*/
       
        /*$array1 = [5,4,6,8,4,3];
        $array2 = [7,8,2,3,5,7];
        */
       
        $array3 = sumaVectores($array1, $array2);
        if (!empty($array3)) //Recorrido do array para visualizar os valores que contén
            echo "Los elementos de la matriz son los siguientes: ";
            foreach ($array3 as $valor) {
                echo "$valor ";
            }
        } else {
            echo "No se pudieron sumar las matrices";
        }
        ?>


_________________________________________________________________________

    Este programa calcula las medias contenidas en una matriz.

<?php
    $medias=array(5,9,6,7);
    $media=0;
    $suma=0;
    foreach($medias as $k=>$var){
       
        $suma=$suma+$var;
        $media=$suma/count($medias);
        echo $suma."</BR>";
       
    }
    echo "$media";
    $med=count($medias);
    echo $med;
    ?>

_________________________________________________________________________

  En este programa se necesitan dos archivos, uno con un formulario y otro con el código de procesamiento de la información (el primero en HTML y el segundo en PHP). El programa calcula la media de las notas de 10 alumnos introducidas en un formulario.

Formulario (HTML):

<!DOCTYPE html>
<html lang="es">
    <head>
    <meta charset="UTF-8" >
    </head>
    <body>
            <form action ="info.php" method="GET">
               Nota1:<input type="number" name="nota1"/><br><br/>
               Nota2:<input type="number" name="nota2"/><br><br/>
               Nota3:<input type="number" name="nota3"/><br><br/>
              Nota4:<input type="number" name="nota4"/><br><br/>
              Nota5:<input type="number" name="nota5"/><br><br/>
              Nota6:<input type="number" name="nota6"/><br><br/>
              Nota7:<input type="number" name="nota7"/><br><br/>
              Nota8:<input type="number" name="nota8"/><br><br/>
              Nota9:<input type="number" name="nota9"/><br><br/>
              Nota10:<input type="number" name="nota10"/><br><br/>
             <input type="submit" value="Enviar"><br><br/>
        </form>
       <hr>
  </body> 

</html>

Procesado de datos (PHP):

<?php
  $suma=0;
  $media=0;
  foreach ($_GET as $k =>$var){
      $suma=$suma+$var;
      $media=$suma/count($_GET);
  }
   echo"La media es $media";

?>

_________________________________________________________________________

  Programa que devuelve en sentido inverso los valores de una matriz de dos modos diferentes.

<?php
    $vector=array(1,2,3,4,5);
    $elementos=count($vector);
    $inverso=array();
    for($i=0;$i<$elementos;$i++){
        $valor=array_shift($vector);
        array_unshift($inverso,$valor);
        echo $valor."</BR>";
    }
    foreach($inverso as $var){
        echo"$var";
    }
    echo"</BR>";
    $reinverso=array();
    for($i=0;$i<$elementos;$i++){
        $valor1=array_pop($inverso);
        array_push($reinverso,$valor1);
    }
    foreach($reinverso as $var){
        echo"$var";
    }
?>


_________________________________________________________________________

  El programa muestra el rango numérico de una matriz cuyos valores se introducen mediante un formulario.

Formulario (HTML):

<!DOCTYPE html>
<html lang="es">
    <head>
    <meta charset="UTF-8" >
    </head>
    <body>
      <form action ="info.php" method="GET">
          Escribe el rango inicial:<input type="number" name="rangoi"/><br><br/>
          Escribe el rango final:<input type="number" name="rangof"/><br><br/>
          <input type="submit" value="Enviar"><br><br/>
      </form>
   </body>
 </html>


Procesado de los datos (PHP):

<?php
    $rangoi=$_GET["rangoi"];
    $rangof=$_GET["rangof"];
    $mat=range($rangoi,$rangof);
    foreach($mat as $var){
        echo "$var";
    }   
?>


_________________________________________________________________________

  Este programa crea una matriz aleatoria y la ordena.

<?php
        function llenarMatriz() {  //Recorrido para llenar la matriz
            for ($i = 0; $i < 1000; $i++) {
                global $array;
                $array[] = rand(1,10);
            }
        }
        $array = null;
        llenarMatriz();
        sort($array);  //Recorrido de la matriz para visualizar los valores que contiene
        echo "Los elementos de la matriz son los siguientes: ";
        foreach ($array as $clave => $valor) {
            if ($clave % 10 == 0) {  //Escribimos en cada línea 10 números
                echo "</BR>";
            }
            echo "$valor ";
        }
?>


_________________________________________________________________________

  Espero que esta entrada del blog haya sido útil al lector.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.