Pregunta

Tengo una lista de números que los usuarios ingresan. Quiero contarlos y obtener:

  1. Subtotales para cada número (solo los números posibles son 1, 2, 3, 4, 5), y
  2. Un total de todos los números ingresados.

Ver:

// Outputs the numbers , " 1 4 1 1 5  " 
// for example (no commas, order is as inputed by user)
echo $a;

#1:

if ($a == "1"){
    $b++;

    // Outputs the actual count but in steps, 
    // say there are 3 "1" then it outputs: 1 2 3 , 
    // but I only want the 3. 
    echo $b;
}

¿Cómo puedo sobrescribir la variable incrementada? Entonces tengo lo que quiero o me equivoco. ¿Hay un enfoque mejor/limpio?

#2:

// outputs only a bunch of 11111 
// (the right amount if i add them up)
echo count($a);

// outputs also a bunch of 111111
print strlen($a);

¿Alguna otra forma de contar y obtener un total (no una suma, un total de números ingresados)?

He estado tratando de resolver esto durante días. Obviamente, soy un principiante y me encantaría entender. He revisado alrededor de 5 libros de PHP y el manual de PHP en línea. Agradecería si alguien podría guiarme en la dirección correcta. Por favor :)

¿Fue útil?

Solución

Esto hará lo que está solicitando. Divida los números en una matriz, usa Array_Sum para contar todos los elementos y luego usa el tamaño de la matriz para contar el número total de elementos. También usa Trim, para limpiar cualquier espacio en blanco, un usuario puede haber ingresado.

$split_numbers = explode(' ',trim($a));
$total_added = array_sum($split_numbers);
$total_numbers = sizeof($split_numbers);

Puedes ver este código en acción aquí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top