entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Arreglo de 15 en 15 con un for sin perder los datos anteriores

hola hola amigos, ojala me puedan ayudar, quisiera saber como poder guardar un arreglo que me da 100 registros (estos pueden ser mas o menos ) y agruparlo de 15 en 15 con un for

tengo este codigo

Código PHP:

<?php
$sql="exec [RIA].[dbo].[idle] 2,'".$ip."','','11'";
            $rs=odbc_exec($connection,$sql);
            $auxNumber=odbc_num_rows($rs);
            $flag=0;
            while(odbc_fetch_row($rs)){
                $data1[$flag][0]=odbc_result($rs,"nameR");
                $data1[$flag][1]=odbc_result($rs,"team");
                $data1[$flag][2]=round(odbc_result($rs,"hours"),2);
            $flag++;    
            }

            $count=sizeof($data1);  
            $max= round($count/15);

    for ($i=0; $i<=$max; $i++){
        for($j=0; $j<=15 $j++){
        $arrayT=$data1[$i*15+$j]

                // aqui tengo la idea de guardarlo algo asi como 
                               // NuevoArreglo [$i * 15  + $j]

        }

    }

?>

desde ya les agradezco por su ayuda!!

2 Respuestas

1voto

rach Puntos6010

Hola solo para dejar la solución a mi problema

$sql="exec [RIA].[dbo].[idle] 2,'".$ip."','','11'";
        $rs=odbc_exec($connection,$sql);

        $flag=0;
        while(odbc_fetch_row($rs)){
            $data[$flag][0]=odbc_result($rs,"nameR");
            $data[$flag][1]=odbc_result($rs,"team");
            $data[$flag][2]=round(odbc_result($rs,"hours"),2);
        $flag++;    
        }
        $new=array();

        $count=sizeof($data);  
        $max= round($count/10);
for ($i=0; $i<=$max; $i++)
    {           
        for ($j=0; $j<10; $j++){
        $new[$j][0]=$data[$i*10+$j][0];
        $new[$j][1]=$data[$i*10+$j][1];
        $new[$j][2]=$data[$i*10+$j][2];

        }      // aqui tengo la idea de guardarlo algo asi como 
    slide2($objPHPPowerPoint,$index,$new,"Idle Time in Week");
        $index++;
    }

estoy trabajando con la libreria phpPowerPoint y cuando quería imprimir una tabla que me traía 100 registros, mi slide se desbordaba, bueno esta fue la manera en que pude lograr que se pusiera en un nuevo slide
:)

0voto

white comentado

Me alegro se haya solucionado, si esta es la solución definitiva no olvides marcar esta respuesta como solucionada, asi damos el tema como resuelto.

0voto

rach comentado

como lo hago?, es que soy nueva en el foro

0voto

white comentado

en la parte derecha superior de esta respuesta a tu pregunta esta el boton que cumple la funcion de seleccionar la respuesta, da click.

saludos!

0voto

white Puntos75880

Hola @rachpts, en php tienes una funcion que permite dividir un array en fragmentos, array_chunk.

opcion 1, usando array_chunk:

$new_array = array_chunk($data1, 15, true);

opcion 2, usando foreach y el operador modulo, que cumple la misma funcion de array_chunk, pero si necesitas personalizar la insercion de datos de alguna forma puede ayudarte:

$position = 0;
$new_array = array();

foreach($data1 as $k => $v)
{
    if( $k % 15 == 0 )
    {
        $position++;
    }

    $new_array[$position - 1][] = $v;
}

http://php.net/manual/es/function.array-chunk.php

0voto

rach comentado

hola, muchas gracias por contestar, lo estoy probando pero no me trae resultados el query, seguiré intentando

0voto

white comentado

No te trae resultados desde tu base de datos? intenta con este código:

$data1 = array();
$sql = sprintf("exec [RIA].[dbo].[idle] %d, '%s', '', '%d'", 2, $ip, 11);
$rs = odbc_exec($connection,$sql);
$auxNumber = odbc_num_rows($rs);

while( odbc_fetch_row($rs) )
{
    $data1[] = array(
        odbc_result($rs,"nameR"),
        odbc_result($rs,"team"),
        round(odbc_result($rs,"hours"),2)
    );
}

$new_array = array_chunk($data1, 15, true);

var_dump($new_array);

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta