Buscador


En todo Internet
En Uterra.Com

Contenidos


Realizar una suma de valores numéricos con PHP es algo muy sencillo si partimos de sumar un número concreto de datos. Para hacer esto no tenemos más que crear un formulario con tantos campos “text” como necesitemos y enviarlos, por ejemplo, mediante $_POST para realizar la suma.

Pero este método tiene un problema, y es que nunca podremos sumar más valores que el número de campos “text” que tengamos en nuestro formulario, además, también tendríamos que ir insertando datos en los diferentes campos, cosa que podría hacerse muy tediosa si lo que deseamos es sumar, por ejemplo, 200 valores.

Una solución a este problema la podemos encontrar en el uso de “array”. Como ya dijimos en el artículo introductorio a los array, el objetivo de estos es tomar en una misma variable un conjunto más o menos amplio de valores. Podemos tener un array para las ciudades, que solo englobará nombres de ciudades, para aficiones, o cualquier cosa que se nos ocurra.

En el caso que nos ocupa, el array contendrá los diferentes valores con los que queremos operar, y estos valores se separaran unos de los otros mediante la pertenencia a una línea del campo textarea diferente. De esta forma, podremos introducir tantos valores como deseemos, y con un solo clic enviamos el formulario, y listo, ya podemos trabajar con ellos. En nuestro caso, el objetivo será calcular la media aritmética del conjunto de datos que introduzcamos, a modo de ejemplo, tambien recogeremos otros datos del array. Para ello necesitamos sumarlos todos los valores, contar el número de valores que hemos introducido, y realizar la división entre la suma y el número de valores.

Para lograr esto deberemos hacer varias cosas.

1) Una vez enviados los datos, por ejemplo, por POST, debemos introducir un elemento que separe los datos unos de otros, en nuestro caso, lo haremos con un salto de línea. Y para que no se produzcan errores si se pulsa varias veces seguidas el salto de linea (tecla Intro), eliminamos los saltos de línea que puedan haber sido introducidos tras el ultimo dato.

2) Mediante la función “explode” creamos un array con estos datos teniendo en cuenta el elemento que los separa, el salto de línea.

3) Una vez hecho esto, debemos sumar los valores del array, lo que haremos mediante “array_sum”, y contar los elementos del array mediante “count”. Se han agregado funciones como la propiedad “end” para conocer el ultimo elemento del array, o [x] (donde x es el número del valor del array que deseamos conocer) para conocer el valor de un determinado elemento del array. Estos no son indispensables para nuestros objetivos, pero lo dejo aquí por que pueden ser útiles.

4) Por ultimo, operamos con estos valores, y listo, ya tenemos una calculadora que envía todos los datos mediante un solo campo textarea.

 

El código, incluido el formulario, que no presenta ninguna dificultad, podéis verlo a continuación.

 

 

<html>

<head>
<title>Calculadora con Array en PHP.</title>
<meta name="robots" content="noindex, nofollow" />
</head>

<body>

<form method="POST" action="procesa_valores.php">

    <p><textarea rows="20" name="valores" cols="40"></textarea></p>
    
    <p><input type="reset" value="Restablecer" name="B2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="submit" value="Enviar" name="B1"></p>
</form>

</body>

</html>
-----------------------------------------------------
------ procesa_valores.php

<?php

$valor 
$_POST["valores"];        // Recibimos valores de textarea

$valore chop($valor);    // Elimina saltos de linea y espacio, pero solo al final de la cadena

$valores nl2br($valore);         // Agregamos los saltos de linea <br />

$array_datos explode("<br />"$valores);    // Creamos array con los datos recibidos

$tercer_valor $array_datos[2];        // Asi recuperamos un valor del array, el 
tercero en este caso

$ultimo_valor 
end($array_datos);    // Asi recuperamos el ultimo valor del array

$valor_maximo max($array_datos);
$valor_minimo min($array_datos);

$suma array_sum($array_datos);    // Asi sumamos todos los valores recibidos
$cuenta_valores count($array_datos);     // Asi contamos los valores del array

?>
<html>

<head>
<title>Calculadora con Array en PHP.</title>
<meta name="robots" content="noindex, nofollow" />
</head>

<body>

<?php
$media 
$suma $cuenta_valores;    // Calculamos la media

$media_rd round($media,2);    // Dejamos la media con dos decimales

// Imprimimos nuestros valores desde el array para mostrarlos en pantalla

echo "
<div align='center'>
    <table border='1' width='700' id='table1' style='font-family: Verdana; font-size: 10pt'>
        <tr>
            <td width='250'><b>Array de datos</b></td>
            <td width='450'><b>Resultados</b></td>
        </tr>
        <tr>
            <td width='250'>
$valores</td>
            <td width='450' valign='top'>
                Nº de valores: <b>
$cuenta_valores</b> <br />
                Suma valores array: <b>
$suma </b><br />
                Media valores array: redondeo a dos decimales <b>
$media_rd</b><br /> 
                Media valores array: sin redondeo <b>
$media </b><br />
                Valor máximo: <b>
$valor_maximo</b> <br />
                Valor mínimo: <b>
$valor_minimo</b> <br />
                Ultimo valor array: 
$ultimo_valor <br />
                Tercer valor array: 
$tercer_valor <br />
            </td>
        </tr>
    </table>
</div>
"


?>

</body>

</html>

Código PHP