Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/08/2004, 09:47
darth_maul68
 
Fecha de Ingreso: agosto-2004
Mensajes: 7
Antigüedad: 20 años, 2 meses
Puntos: 0
Devolver ARRAY desde una fumcion

Hola buenas! Tengo una funcion que crea un array he intentado lo siguiente:

Código PHP:
<?php
FUNCTION all_stats ($user,$is_data_opened)
{
    IF (
$is_data_opened == FALSE)
    {
        
$html file('http://hiscore.runescape.com:80/aff/runescape/hiscorepersonal.cgi?username='.$user);
    }
    
// Comprobamos que el usuario aparece en las tablas
    
$pos strpos($html[4], "does not currently appear in the hiscores");
    IF (
$pos === FALSE)
    {
        
$allstats = array();
        
//Lo primero que hacemos es inicializar el array the habilidades.
        
$categories[0]="Overall";
        
$categories[1]="Attack";
        
$categories[2]="Defence";
        
$categories[3]="Strength";
        
$categories[4]="Hitpoints";
        
$categories[5]="Ranged";
        
$categories[6]="Prayer";
        
$categories[7]="Magic";
        
$categories[8]="Cooking";
        
$categories[9]="Woodcutting";
        
$categories[10]="Fletching";
        
$categories[11]="Fishing";
        
$categories[12]="Firemaking";
        
$categories[13]="Crafting";
        
$categories[14]="Smithing";
        
$categories[15]="Mining";
        
$categories[16]="Herblore";
        
$categories[17]="Agility";
        
$categories[18]="Thieving";
        
$categories[19]="Runecrafting";
        
$l=0;
        For (
$i=0;$i<=19;$i++)
        {
            
$position 8+7*$i;
            
$stats[$i] = $html[$position];
        
            
//Buscamos si es entero, en tal caso buscamos a que habilidad pertenece el entero.
            
IF (strpos($stats[$i], "table cellspacing")===FALSE)
            {
                
$position $position-2;
                DO
                {    
                    IF (
strpos($html[$position], $categories[$l])!==FALSE)
                    {
                        
$allstats[$categories[$l]] = $stats[$i];
                        echo 
"allstats[".$categories[$l]."] = ".$stats[$i].";<br>";
                        
$valido TRUE;                    
                    }
                    ELSE
                    {
                        
$allstats[$categories[$l]] = "-";
                    }
                    
$l=$l+1;
                }
                WHILE(
$valido==FALSE);
                
$valido FALSE;       
            }
            ELSE
            {
                
$i=19;
            }
        }
        
//Mostramos las habilidades que queden con 1 guion
        
FOR ($i=$l;$i<=19;$i++)
        {
            
$allstats[$categories[$i]] .= "-";
        }
    }
    
print_r(array_keys($allstats));
    return 
$allstats;
}
//fin funcion all_stats

all_stats(jcgx,FALSE);
print_r(array_keys($allstats));

IF (
$allstats==ARRAY())
{
    echo 
"ERROR: The user does not appear in the high score tables. Be sure it is spelled correctly.";
}
ELSE
{
    echo 
$allstats[Overall];
}
?>
El caso es que si ejecuto print_r(array_keys($allstats)); dentro de la funcion, imprime su estructura correctamente (los valores tb se introducen bien), pero sin embargo, actua como si no existiera el array si ejecuto ese comando desde fuera. He pasado $allstats con un return y parece no haber funcionado. Que es lo que esta mal? Gracias por adelantado

Última edición por darth_maul68; 30/08/2004 a las 09:53