Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

310
Vistas
Usando Variable en foreach () como nombre de matriz PHP

He estado haciendo un reloj que muestra horarios según el día que es, así que he creado 7 matrices con horarios en ellos. Ahora necesito escribir una instrucción foreach que tome la fecha:

 $day = date("D");

Luego usa la función foreach en esa matriz como:

 foreach ($day as &$value) { }

Cuando hago esto, me da un error porque quiere que use la variable de matriz directa.

Advertencia: Se proporcionó un argumento no válido para foreach() en /home/johfin16/johnfinberg.com/php/functions-new.php en la línea 24

Aquí hay un ejemplo de una de mis matrices.

 $Mon = array("08:10am-08:30am-Morning Meeting", "08:35am-09:55am-A Block", "10:05am-11:25am-B Block", "11:30am-12:05pm-First Lunch", "12:05pm-12:40pm-Second Lunch", "12:40pm-02:00pm-C Block", "02:05pm-03:25pm-D Block");

¿Hay alguna manera de evitar esto sin crear un montón de declaraciones if?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Parece que estás tratando de usar variables variables . Entonces debería ser:

 $day = &${date('D'); foreach ($day as &$value) { ... }

Sin embargo, las variables variables son generalmente una mala práctica de programación. Cada vez que los necesite, es una señal de que debería usar una matriz asociativa en lugar de variables separadas. Entonces tu código debería ser:

 $calendar = array( 'Mon' => array("08:10am-08:30am-Morning Meeting","08:35am-09:55am-A Block", "10:05am-11:25am-B Block", "11:30am-12:05pm-First Lunch", "12:05pm-12:40pm-Second Lunch", "12:40pm-02:00pm-C Block", "02:05pm-03:25pm-D Block"), 'Tue' => array(...), ... );

Entonces puedes hacer:

 $day = &$calendar[date('D')]; foreach ($day as &$value) { ... }
over 4 years ago · Santiago Trujillo Denunciar

0

La función de cambio se puede usar para establecer una matriz en $ activa y luego esa matriz se puede usar en la función foreach. Ex:

 switch ($day) { case "Mon": $active = $Mon; break; case "Tue": $active = $Tue; break; case "Wed": $active = $Wed; break; default: $active = $Special; }
over 4 years ago · Santiago Trujillo Denunciar

0

En cada día hay varias clases que deben extraerse de la matriz.

NO

Porque tú tienes:

 $day = date("D");

Entonces, cualquier $day contenido antes de que se alcance esta línea, las clases, matrices, variables, etc. se olvidan y $day repente se convierte SOLO en el resultado de la date("D") .

Es posible que desee agregar la date("D") como un elemento de matriz (es decir, uno de los numerosos elementos en una matriz), por lo tanto, haría lo siguiente:

 $day[] = date("D");

Esto agregará el valor de la date("D") a una matriz de múltiples $days , esto luego se puede recorrer con un bucle foreach . Para cada día.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda