Jump to content

generar un arreglo en php y luego recuperarlo


Recommended Posts

hola amigos del foro.. les quiero pedir un favor gigantesco.. como puedo generar un arreglo en php dinamico.. es decir, por ejemplo si el usuario ingresa un num 12, me genera un array de 12 elementos con enteros aleatorios (4-6-2-7-1-11-12-10-7-4-8-4), y eso quede guardado en un arreglo..

 

porq despues de eso q me lo genere necesito ordenarlo de menor a mayor por un algoritmo q tengo.. pero para eso necesito pasarle el array. el algoritmo de ordenamiento es este:

algoritmo insercion( A : array de n elementos indizados de 1 a n)

variables: enteros i, j, v

//estas son las pasadas, desde 2 hasta n

//en cada una intentaremos encontrar la posición

//relativa del elemento i entre los anteriores

para i desde 2 hasta n

//tomamos el elemento a examinar en una variable

//temporal v

v=A

//empezamos a comparar con los anteriores.

j=i-1

//en este bucle intentamos saber cual es su

//lugar y le vamos haciendo hueco

mientras (j>=1) Y (A[j]>v) hacer

//desplazamos el elemento A[j]

A[j+1]=A[j]

j=j-1

fin mientras

A[j+1]=v

fin para

fin algoritmo

 

porfa si alguien me puede ayudar.. q hice algo pero no me funciona...

 

lo q hice fue q en el archivo index.php.. recuperara el valor del porte del arreglo.. con un input type name datos.. por ejemplo si el usuario ingresaba 10. por el metodo post recuperaba ese valor y lo llevaba a un for.

 

for( $i = 0 ; $i < $_POST["datos"]; $i++ )

{

$d = rand(1,$_POST["datos"]);

 

echo $d."-";

 

 

 

pero despues nose como recuperar ese arreglo para ordenarlo.. algunos me dijeron que con eso solo los mostre pero no genere un arreglo.. entonces como formo un arreglo?.. para despues recuperarlo y ordenarlo?

 

otra cosa hay alguna funcion de php que me contabilize el tiempo que se demoro en arreglar el arreglo q se genero?

 

 

pucha ojala me puedan ayudar que ya genere algo asi anteriormente pero lo q me respondieron quede plop xD

 

saludoss y grax..

 

grax.. pucha ahora tengo otro drama.. xd.. nose si se puede solucionar en php.. sino obligado a hacer en otro lenguaje

lo q pasa q el profe me pidio hacerlo hasta con 100 mill de datos xd.. onda q me ordene un array..

eso see me dijo q ibas a tar como 1 semana trabajando el PC.. onda si el usuario ingresa 50000.. me genera un array de 50000 elementos y me lo ordena.

pero el punto si ingreso por ejemplo 50000.. me tira el siguiente error:

Fatal error: Maximum execution time of 60 seconds exceeded in C:\AppServ\www\insercion\procesa.php on line 12

 

entonces nose si se puede solucionar eso.. sino obligado a intentar hacerlo en otro lenguaje C.. supungo q se podra

 

porfa si me pueden ayudar.. y que me recomiendan..

 

ahh y si le tiro 1mill de datos me tira este error

Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 34 bytes) in C:\AppServ\www\insercion\procesa.php on line 32

saludos

Edited by crinfo
Link to comment
Share on other sites

aer si mi humilde ayuda te puede orientar un poco

 

cuando tienes esto

for( $i = 0; $i < $_POST["datos"]; $i++ )
{
$d = rand(1,$_POST["datos"]);

echo $d."-";

 

lo que haces no es guardar los numeros aleatorios en un arreglo

solo los asignas a una variable , la muestras, luego vuelves a asignarle un valor a la variabble, muestras......

Por ejemplo: la cantidad de datos, se la asignas al tamaño de un arreglo, y luego donde vas recorriendo el for

los vas agregando => $d[$i] = rand(1,$_POST["datos"]);

 

C:\AppServ\www\insercion\procesa.php on line 12

C:\AppServ\www\insercion\procesa.php on line 32

 

En estos 2 te indica que en esas lineas del archivo hay errores

tendrias que indicar que tienes escrito para ver como solucionar esos problemas.

 

Lo del problema del tiempo excedido es problema de php

que por defecto tiene un tiempo limite para realizar las solicitudes

las soluciones por lo que encontre podrian ser

1) Cambiar en php.ini max execution time

2) escribir al inicio de la pagina set_time_limit(0)

Si lo quieres en modo global lo puedes escribir encima al fichero Comon.php

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...