Foros del Web » Programando para Internet » PHP »

Crear un arrgelo sin saber longitud

Estas en el tema de Crear un arrgelo sin saber longitud en el foro de PHP en Foros del Web. Buen día a todos, Tengo una duda debo desarrollar un algoritmo que le pida a un usuario una n cantidad de números y la vaya ...
  #1 (permalink)  
Antiguo 26/01/2011, 07:49
 
Fecha de Ingreso: abril-2006
Ubicación: Venezuela
Mensajes: 126
Antigüedad: 18 años, 7 meses
Puntos: 0
Crear un arrgelo sin saber longitud

Buen día a todos,

Tengo una duda debo desarrollar un algoritmo que le pida a un usuario una n cantidad de números y la vaya almacenando en un arreglo pero el problema es que no se de cuanto debe ser la longitud del mismo porque no indica cuanto números va a ingresar el usuario.


Se que con un while voy pidiéndole al usuario ingresar los numeros y cuando pise un botón se salga del while y deje de llenar el arreglo. Mi duda es existen en php la posibilidad de crear un arreglo sin decirle la longitud del mismo? y si es así con que instrucción se hace, gracias.
  #2 (permalink)  
Antiguo 26/01/2011, 08:02
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Crear un arrgelo sin saber longitud

en php no hay porque asignarle una longitud al array

Código PHP:
$foo = array();

while (
/** true **/) {
    
$foo[] = 'new element';


saludos.
  #3 (permalink)  
Antiguo 27/01/2011, 10:33
 
Fecha de Ingreso: abril-2006
Ubicación: Venezuela
Mensajes: 126
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Crear un arrgelo sin saber longitud

Mil gracias Hidek1 por contestar! una pregunta:

en php cree el arreglo $arrep = array();

en el formulario tengo un cuadro de texto, lo que deseo es que la persona al colocar un valor y darle enter ese valor se vaya adicionando al arreglo.

este es mi codigo del formulario:

Código PHP:
<FORM ACTION=index2.php id="f_buscar" name="f_buscar" METHOD=post>
  <p>&nbsp;</p>
  <blockquote>
    <?php
    $arreg 
= array();
    
$arreg[]=1;
    echo 
$arreg;
echo 
"EJERCICIOS DE CONJUNTOS";
    
# empezando una tabla html
echo "<HTML><TABLE Border=2 CellPadding=2 th align=center><TR>";
    
# construyendo los encabezados de la tabla
echo "<th>CONJUNTO PRINCIPAL</th><th>CONJUNTO A</th><th>CONJUNTO B</th><th>CONJUNTO C</th></TR>";
    
// desplegando en celda de tabla html
echo "<th><input type=text id='valorP' size='08' maxlength='08' onKeypress='llena_arreglo($valorp);'></th>";
// cerrando tabla html
echo "</table>";
    
?>
</blockquote>
</FORM>
este es el codigo de java script que obtiene el valor del cuadro de texto y lo almacena en el arreglo:

Código PHP:
<script
function 
llena_arreglo($valorp

var 
document.f_buscar.valor.value;
if( 
== '' 

alert ("Debe ingresar UN VALOR PARA EL CONJUNTO."); 
return 
false


document.f_buscar.arreg[].value = var x;

</script> 
Pero el código no me funciona, alguno tendrá una idea de como mejorarlo o que estaré haciendo mal, gracias.
  #4 (permalink)  
Antiguo 27/01/2011, 10:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Crear un arrgelo sin saber longitud

Pues todo, no puedes hacer eso, recuerda que PHP y Javascript se ejecutan en dos ambientes diferentes, es decir PHP se ejecuta en el servidor y Javascript en el cliente, es forzoso que envies los valores a PHP para usarlo.

También recuerda que PHP es un lenguaje stateless, por lo que en cada recarga tu array se vaciará, tienes que persistir ese array en memoria usando sesiones o algo similar.

Saludos.
  #5 (permalink)  
Antiguo 27/01/2011, 10:52
 
Fecha de Ingreso: abril-2006
Ubicación: Venezuela
Mensajes: 126
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Crear un arrgelo sin saber longitud

Ok, el rollo es que no se como capturar n cantidad de datos para insertarlo al arreglo, no puedo colocar n cantidad de campos porque estaria limitando la longitud del arreglo, tienen alguna idea de como podre capturar estos datos para el arreglo.
  #6 (permalink)  
Antiguo 27/01/2011, 10:58
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Respuesta: Crear un arrgelo sin saber longitud

primero debes de entender que el php es ejecutado en el servidor y por cada solicitud que hagas la pagina es procesada y convertida a html(que al final devuelve al navegador para que este lo interprete), variables, arreglos y demas son eliminados al terminar de procesar la página, para lograr mantener los datos puedes echar mano de las sessiones, de las cookies o de una BD, por otro lado el javascript no puede asignar directamente un valor a una variable php, ya que como te dije antes le php se ejecuta en el servidor y el javascript es ejecutado en el equipo del cliente, te doy una idea simple
Código Javascript:
Ver original
  1. function llena_arreglo(){
  2. var x = getElementById('datos').value;
  3. if( x == '' ){
  4.     alert ("Debe ingresar UN VALOR PARA EL CONJUNTO.");
  5. }
  6.     getElementById('array').value=getElementById('array').value + '_' +x;
  7. }
Código HTML:
Ver original
  1. <form name="f_buscar" method="post" action="otrapagina.php">
  2. <label>Conjunto</label><input type="text" id="datos" />
  3. <input name="array" type="hidden" id="array" />
  4. <input type="button" name="agregar" onclick="llena_arreglo()" value="Agregar" />
  5. </form>
y en otrapágina.php usas un explote a $_POST['array'] y tendrás tu arreglo, tiene alguno detallitos por ser ejemplo pero no es nada que tu no puedas arreglar, saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Etiquetas: longitud
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:00.