Foros del Web » Programando para Internet » PHP »

Capturar valores de un array en distintas variables

Estas en el tema de Capturar valores de un array en distintas variables en el foro de PHP en Foros del Web. Buenos días, chicos! Luego de varios días de reptar en busca de una solución, he venido a buscar vuestra ayuda... He aquí el problema: tengo ...
  #1 (permalink)  
Antiguo 23/05/2016, 03:20
 
Fecha de Ingreso: mayo-2015
Ubicación: Brasil
Mensajes: 13
Antigüedad: 8 años, 11 meses
Puntos: 0
Pregunta Capturar valores de un array en distintas variables

Buenos días, chicos!
Luego de varios días de reptar en busca de una solución, he venido a buscar vuestra ayuda...
He aquí el problema: tengo un script que recibe los datos de un formulario por POST y deseo guardar cada valor en una variable separada. El formulario tiene seis valores PERO no son obligatorios, pueden llegar menos o apenas uno. Lo primero que intenté fue un bucle foreach() pero logicamente, a cada recorrido reescribe el contenido de la variable con un nuevo valor si lo hay...
Como puedo hacer para que cada valor (si lo hay) vaya a una variable distinta ($var1, $var2, $var3...)?
El script es para una agenda donde pueda dejar disponibles horarios a cada semana para mis alumnos (soy profesor de Español, por cierto)
Mi script por ahora:

Código:
$dia=array_values($_POST)[0]; // recoge el dia de la semana para insertar como $dia
	array_shift($_POST); //borra el valor recogido por $dia
	if ($_POST) { //$_POST ahora tiene apenas los horarios que he dejado en el formulario con 'checkboxes'
		
			foreach ($_POST as $key => $value) {
				$hora=$value; // se actualiza el contenido a cada recorrido y se pierde el anterior
			}}
  #2 (permalink)  
Antiguo 23/05/2016, 08:38
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Capturar valores de un array en distintas variables

No se muy bien lo que intentas hacer, pero por lo que dices lo que necesitas es list

Un ejemplo del manual
Código PHP:
Ver original
  1. <?php
  2.  
  3. $info = array('café', 'marrón', 'cafeína');
  4.  
  5. // Enumerar todas las variables
  6. list($bebida, $color, $energía) = $info;
  7. echo "El $bebida es $color y la $energía lo hace especial.\n";

Intenta explicarnos mejor que es lo que quieres hacer y que es lo que contiene tu array para poder hacernos una idea.
__________________
Unset($vida['malRollo']);
  #3 (permalink)  
Antiguo 23/05/2016, 10:25
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Capturar valores de un array en distintas variables

pues muestra el codigo del formulario a ver que se se le hace
__________________
[email protected]
HITCEL
  #4 (permalink)  
Antiguo 23/05/2016, 13:25
 
Fecha de Ingreso: mayo-2015
Ubicación: Brasil
Mensajes: 13
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Capturar valores de un array en distintas variables

Este es el form del que llegan los datos, cada checkbox lleva en texto las horas libres y el dia de la semana para ponerlas en la tabla de calendario.

Código PHP:
Ver original
  1. <form action="php/atualizar_calendario.php" method="post">
  2.             <h2>Lunes</h2>
  3.             <input type="hidden" name="lunes" value="lunes">
  4.             <input type="checkbox" name="uno" value="7 a 9"><h3>7 a 9</h3>
  5.             <input type="checkbox" name="dos" value="9 a 11"><h3>9 a 11</h3>
  6.             <input type="checkbox" name="tres" value="13 a 15"><h3>13 a 15</h3>
  7.             <input type="checkbox" name="cuatro" value="15 a 17"><h3>15 a 17</h3>
  8.             <input type="checkbox" name="cinco" value="17 a 19"><h3>17 a 19</h3>
  9.             <input type="checkbox" name="seis" value="19 a 21"><h3>19 a 21</h3>
  10.             <hr>
  11.             <input type="hidden" value="<?php echo $login;?>">
  12.             <input type="submit" value="Actualizar" class="btn btn-primary">
  13.             </form>
  #5 (permalink)  
Antiguo 23/05/2016, 14:49
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Capturar valores de un array en distintas variables

Eso es muy sencillo de hacer:
Código PHP:
Ver original
  1. $post = [
  2.     "uno" => "7 a 9",
  3.     "dos" => "9 a 11",
  4.     "tres" => "13 a 15",
  5.     "cuatro" => "15 a 17",
  6.     "cinco" => "17 a 19",
  7.     "seis" => "19 a 21"
  8. ];
  9.  
  10. extract($post);
  11.  
  12. echo $uno;
  13. echo $dos;
te recomiendo que leas el manual con mas frecuencia: http://php.net/manual/en/function.extract.php
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #6 (permalink)  
Antiguo 23/05/2016, 17:59
 
Fecha de Ingreso: mayo-2015
Ubicación: Brasil
Mensajes: 13
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Capturar valores de un array en distintas variables

Muchísimas gracias, voy a probarlo y les cuento pero parece que es lo que necesito. Voy a estudiar con detenimiento el manual!!!
  #7 (permalink)  
Antiguo 24/05/2016, 11:31
 
Fecha de Ingreso: mayo-2015
Ubicación: Brasil
Mensajes: 13
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Capturar valores de un array en distintas variables

Buenas a todos.
Gracias por vuetra ayuda! He podido resolver mi problema de esta manera:
Código:
$dia=array_values($_POST)[0]; // recoge el valor 0 del array que usaré más adelante
	array_shift($_POST); //borra el valor recogido por $dia
	
	$horas="";
		foreach ($_POST as $key => $value) {
			$horas .="$key => $value"; // concatena los valores del array y lo guarda en $horas
		}
Muchísimas gracias por vuestro tiempo!

Etiquetas: arrays
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:33.