Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/12/2007, 13:15
Avatar de joseda_r
joseda_r
 
Fecha de Ingreso: diciembre-2007
Mensajes: 10
Antigüedad: 16 años, 4 meses
Puntos: 0
Problemas con COMBINACIÓN DE ARREGLOS y KSORT

Hola, Tengo un problemita vean les explico:

Estoy elaborando un documento PDF desde php y aclaro que cuando diga TABLA, me refiero a la tabla donde muestro los datos de la BD en el PDF.

Tengo un arreglo $row que es extraído de la BD y los voy a mostrar en una TABLA de 5 columnas ($numero,$tecnologia,$etapa_proyecto,$descripcion, $estado_actual) y tantas filas como registros hayan.
El tamaño de cada fila se ajusta a la celda que tenga la cadena mas larga en esa fila. Es decir las alturas de las filas de la TABLA son de diferentes tamaños.
Los datos son extraidos de la base de datos a las filas en orden como estaban en las tablas de la BD. Yo deseo que esos registros se muestren en la TABLA en el orden ascendente del tamaño de las filas.

Supongamos que los datos son extraidos en los tamaños: 45, 5,9,3
y yo quiero que los datos los imprima en este orden del tamaño: 3, 5, 9, 45

Yo determino los tamaños de las filas contando los caracteres de la cadena mas larga dentro de esa fila.

El codigo (datos mostrados en el orden que son extraídos de la BD):

$psei=0;
for($c=1;$c<=5;$c++)
while($row = mysql_fetch_array($result))
{
$psei++;
$numero[$psei]=$psei;
$tecnologia[$psei]=str_replace('.','',$row["nb_proyecto"]);
$etapa_proyecto[$psei]=$row["tx_status"]."\n".' ('.str_replace('.',',',$row["pc_avance_proyecto"]).' %)';
$descripcion[$psei]=poner_punto_final($row["tx_alcance"]).' (Participantes: '.poner_punto_final($row["nb_participantes"]).' Responsable: '.$row["nb_nombre"]." ".sin_punto_final($row["nb_apellido"]).')';
$estado_actual[$psei]=poner_punto_final($row["tx_situacion_actual"])."\n".'IMPACTO: '.poner_punto_final($row["tx_impacto"]);

//El tamaño de las filas los tengo en un arreglo $key
$key[$psei]=max(strlen($descripcion[$psei]),strlen($estado_actual[$psei]));
}
//Muestro la tabla completa
for($i=1;$i<=$psei;$i++)
{
$values=array($numero[$i],$tecnologia[$i],$etapa_proyecto[$i],$descripcion[$i],$estado_actual[$i])
$pdf->Row($values);
}
---------Aqui termina---------

He pensado en tener 2 arreglos: $key y $values (los valores son los arreglos de 5 columnas).
Quiero combinarlos de manera que los indices sean los tamaños de filas $key y los valores sean los arreglos de 5 columnas $values:
$filas = array_combine($key,$values);
Y ordeno el arreglo combinado en orden ascendente
ksort($filas);

Se que me falta estructurarlo bien, por eso necesito q me ayuden a hacerlo... Se los agradezco.

Última edición por joseda_r; 24/12/2007 a las 19:06 Razón: modificar el tema