Quiero generar un selectbox
usando dos matrices, una que contiene los códigos de país y otra que contiene los nombres de los países.
Esto es un ejemplo:
<?php
$codes = array('tn','us','fr');
$names = array('Tunisia','United States','France');
foreach( $codes as $code and $names as $name ) {
echo '<option value="' . $code . '">' . $name . '</option>';
}
?>
Este método no funcionó para mí. ¿Alguna sugerencia?
foreach
opera en una sola matriz a la vez.La forma en que está estructurada su matriz, puede
array_combine()
convertirlas en una matriz de pares clave-valor y luego enforeach
esa única matriz:O como se ve en las otras respuestas, puede codificar una matriz asociativa en su lugar.
fuente
Úselo
array_combine()
para fusionar las matrices e iterar sobre el resultado.fuente
Utilice una matriz asociativa:
Creo que usar una matriz asociativa es el enfoque más sensato en lugar de usarlo
array_combine()
porque una vez que tiene una matriz asociativa, puede simplemente usararray_keys()
oarray_values()
para obtener exactamente la misma matriz que tenía antes.fuente
array_combine()
ya produce una matriz asociativa, es posible que desee ser más claro al inicializarla como asociativa.array_map también parece bueno para esto
Otros beneficios son:
Si una matriz es más corta que la otra, la devolución de llamada recibe
null
valores para llenar el espacio.Puede utilizar más de 2 matrices para recorrer en iteración.
fuente
¿Por qué no simplemente consolidarlo en una matriz asociativa
multidimensional? Parece que estás haciendo esto mal:se convierte en:
fuente
Todo completamente probado
3 formas de crear un menú desplegable dinámico a partir de una matriz.
Esto creará un menú desplegable a partir de una matriz y asignará automáticamente su valor respectivo.
Método n. ° 1 (matriz normal)
Método n. ° 2 (matriz normal)
Método n. ° 3 (matriz asociativa)
fuente
foreach solo funciona con una única matriz. Para recorrer varias matrices, es mejor usar la función each () en un ciclo while:
each () devuelve información sobre la clave actual y el valor de la matriz e incrementa el puntero interno en uno, o devuelve falso si ha llegado al final de la matriz. Este código no dependería de que las dos matrices tengan claves idénticas o que tengan el mismo tipo de elementos. El ciclo termina cuando termina una de las dos matrices.
fuente
Esto funcionó para mí:
fuente
Puede usar array_merge para combinar dos matrices y luego iterar sobre ellas.
fuente
Caminar hacia fuera...
PHP 5.3+
Antes de PHP 5.3
o combinar
en seleccionar
manifestación
fuente
fuente
En lugar de foreach loop, intente esto (solo cuando sus matrices tengan la misma longitud).
fuente
Creo que puedes hacer algo como:
$ códigos = matriz ('tn', 'us', 'fr');
$ nombres = matriz ('Túnez', 'Estados Unidos', 'Francia');
También debería funcionar para matrices asociativas.
fuente
Creo que la forma más sencilla es usar el bucle for de esta manera:
fuente
Su código como este es incorrecto como foreach solo para una sola matriz:
Alternativa, cambie a esto:
fuente
array_combine()
funcionó muy bien para mí al combinar$_POST
múltiples valores de múltiples entradas de formulario en un intento de actualizar las cantidades de productos en un carrito de compras.fuente
Ahora puede usar $ a para cada matriz ...
fuente
Resolví un problema como el tuyo de esta manera:
fuente
Debería probar esto para la matriz de poner 2 en el bucle foreach de singlr. Suponga que tengo 2 matriz 1. $ item_nm 2. $ item_qty
fuente
Algunas matrices también se pueden iterar de esta manera:
fuente
esto funciona para mi
fuente