Foros del Web » Programando para Internet » PHP »

dividir una cadena y hacer calculos

Estas en el tema de dividir una cadena y hacer calculos en el foro de PHP en Foros del Web. Hola, Estoy trabajando en el código que pongo más abajo... pero me he encallaooo. El problema: -> Se recibe una cadena formada por X números. ...
  #1 (permalink)  
Antiguo 16/11/2011, 06:27
 
Fecha de Ingreso: octubre-2011
Mensajes: 36
Antigüedad: 12 años, 7 meses
Puntos: 2
Exclamación dividir una cadena y hacer calculos

Hola,

Estoy trabajando en el código que pongo más abajo... pero me he encallaooo.

El problema:

-> Se recibe una cadena formada por X números. X puede tener una longitud de 22, 51, 67, etc... números.

-> Quiero que imprima 10 números por linea y que calcule la suma de cada linea de 10 números. Y esa suma la ponga al final de cada linea.

Gracias por adelantado!


Código PHP:
        $filename=$_GET["filename"];
    include(
$filename);
         
//La cadena que se recibe seria del tipo por p.ej -> $cadena="79 78 82 68 50 90 73 56 91 95 76 38 35 80 48 86 83 97 57 56 89 57 65 59 91"
    //print $cadena . '<br><br>';
    
    
$sequencia explode(" ",$cadena);
    
$num count($sequencia);
    
    
$suma=0;
    for(
$i 0$i $num$i=$i 1) {
    
    
// imprime todos los numeros de la cadena
        
$numeros array_shift($sequencia);
        echo 
$numeros ' ';
        
                
//si es multiplo de 10, salto de linea
        
if ($i%10=='0') { echo '<br>'; } 

  #2 (permalink)  
Antiguo 16/11/2011, 07:21
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: dividir una cadena y hacer calculos

Aca te dejo la respuesta

Código PHP:
<?php
    $cadena
="79 78 82 68 50 90 73 56 91 95 76 38 35 80 48 86 83 97 57 56 89 57 65 59 91";
    
$sequencia explode(" ",$cadena);
    
$num count($sequencia);

    
$suma 0;
    for(
$i 1$i <= $num$i++) {
        
// imprime todos los numeros de la cadena 
        
$numeros array_shift($sequencia);
        
$suma $suma $numeros;
        echo 
$numeros ' ';
        
//si es multiplo de 10, salto de linea 
        
if ($i && $i%10=='0') {
            echo 
"| " $suma "\n";
            
$suma 0;
        }
        if (
$i == $num) {
            echo 
"| " $suma "\n";
        }
}  
?>

Fijate de cambiar la cadena por lo que necesitas vos!

Saludos!
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 16/11/2011, 09:21
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: dividir una cadena y hacer calculos

acabo de escribir este código en base a tu consulta de manera que el límite sea variable
Código PHP:
    $cadena="79 78 82 68 50 90 73 56 91 95 76 38 35 80 48 86 83 97 57 56 89 57 65 59 91";
    
$numeros explode(" ",$cadena);
    
$total count($numeros);
    
$limite 10;

    if(
== $total $limite// calcula el número de iteraciones 
        
$extraer $total $limite;
    else    
        
$extraer = (int)($total $limite) + 1
    
$pos 0//posición para extraer elementos del array
    
for($i=0;$i<$extraer;$i++){
        
array_showarray_slice($numeros$pos$limite) );
        
$pos+= $limite;
    }

    
function 
array_show($numeros){
        
$suma array_reduce($numeros"array_suma");
        
$linea '<br/>'// agregamos el salto de línea al inicio
        
$linea.= implode(","$numeros); // pasamos los números a cadena para mostrar
        
$linea.= "| suma: $suma"// agregar el resultado de la suma
        
echo $linea;
}
    
function 
array_suma($a$b){
        
$a += $b;
        return 
$a;

__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #4 (permalink)  
Antiguo 16/11/2011, 09:53
 
Fecha de Ingreso: octubre-2011
Mensajes: 36
Antigüedad: 12 años, 7 meses
Puntos: 2
Respuesta: dividir una cadena y hacer calculos

Muchísimas Gracias a los dos!

jcxnet... entiendo que la diferencia en tu código es básicamente estructural, y a nivel funcional es que las lineas pueden tener cualquier límite. El resto es lo mismo, ¿me equivoco?
  #5 (permalink)  
Antiguo 16/11/2011, 10:06
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: dividir una cadena y hacer calculos

así es, la idea era hacer flexible la función para que puedas definir cualquier límite para mostrar / sumar
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #6 (permalink)  
Antiguo 16/11/2011, 10:18
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: dividir una cadena y hacer calculos

Yo lo haría así, no entiendo para que dan tanta vuelta:

Código PHP:
Ver original
  1. <?php
  2. $cadena = '79 78 82 68 50 90 73 56 91 95 76 38 35 80 48 86 83 97 57 56 89 57 65 59 91';
  3. $cadena = array_chunk(explode(' ', $cadena), 10);
  4.  
  5. foreach ($cadena as $grupo10) {
  6.     echo 'Números: ' . implode(', ', $grupo10) . ' | ';
  7.     echo 'Total: ' . array_sum($grupo10) . '<br />';
  8. }

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: dividir, cadenas, calculo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:12.