Antes de que se llame a la funcion "pon_definicion" creo un array con numeros aleatorios y posteriormente yo quiero utilizar este array dentro de esa función. El problema es que cada vez que llamo a la función "pon_defincion" el array ya no contiene los mismo números, es como si volviera a empezar el código php desde el principio, y me hacía falta ajax para escribir el resultado de la consulta en una parte de la página, pero ahora me encuentro con este error y no sabría como solucionarlo.
Os dejo el código:
Código PHP:
   <?php
    require ('xajax/xajax_core/xajax.inc.php');
 
    $xajax = new xajax();
 
    //Creo un array aleatorio de IDS para cada letra
    $letras=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'L', 'M', 'N', 'Ñ', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z');
    $final=array();
    include('conexion.php');
    
    for($i=0; $i<count($letras); $i++){
        $id=array(); //En ese array se guardarán los IDs de cada letra
        
        $consulta="SELECT * FROM palabras WHERE letra='$letras[$i]'";
        $lista=mysql_query($consulta);
        $num=mysql_num_rows($lista);
        
        while($fila=mysql_fetch_row($lista))
        {
            array_push($id, $fila[0]);
        }        
        $aleatorio = rand(0,count($id)-1); //Genera un numero aleatorio de 0 a la longitud del array id menos 1
        array_push($final, $id[$aleatorio]); //Guarda en el array final el ID de la palabra elegida al azar
    }
    
 
    function pon_definicion($pos_letra){
        global $final;
        for($i=0; $i<count($final); $i++){
            $consulta=$consulta." - ".$final[$i];
        }
        
           $respuesta = new xajaxResponse();
                  $respuesta->Assign("definicion","innerHTML",$consulta);
 
           return $respuesta;
    }
 
    $xajax->register(XAJAX_FUNCTION, 'pon_definicion');
 
    $xajax->processRequest();
?>    
 
