Je souhaite générer un en selectbox
utilisant deux tableaux, l'un contenant les codes de pays et l'autre contenant les noms de pays.
Ceci est un exemple:
<?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>';
}
?>
Cette méthode n'a pas fonctionné pour moi. Aucune suggestion?
foreach
ne fonctionne que sur une seule baie à la fois.La façon dont votre tableau est structuré, vous pouvez les
array_combine()
créer dans un tableau de paires clé-valeur puis dansforeach
ce tableau unique:Ou comme on le voit dans les autres réponses, vous pouvez coder en dur un tableau associatif à la place.
la source
Utilisez
array_combine()
pour fusionner les tableaux ensemble et parcourir le résultat.la source
Utilisez un tableau associatif:
Je pense que l'utilisation d'un tableau associatif est l'approche la plus sensée par opposition à l'utilisation,
array_combine()
car une fois que vous avez un tableau associatif, vous pouvez simplement utiliserarray_keys()
ouarray_values()
obtenir exactement le même tableau que vous aviez auparavant.la source
array_combine()
produit déjà un tableau associatif, vous voudrez peut-être être plus clair sur son initialisation en tant qu'associatif.array_map semble bon pour cela aussi
Les autres avantages sont:
Si un tableau est plus court que l'autre, le rappel reçoit des
null
valeurs pour combler l'espace.Vous pouvez utiliser plus de 2 tableaux pour parcourir.
la source
Pourquoi ne pas consolider juste dans un
pluridimensionnelletableau associatif? On dirait que vous vous trompez:devient:
la source
Tous entièrement testés
3 façons de créer une liste déroulante dynamique à partir d'un tableau.
Cela créera un menu déroulant à partir d'un tableau et attribuera automatiquement sa valeur respective.
Méthode n ° 1 (matrice normale)
Méthode n ° 2 (matrice normale)
Méthode n ° 3 (tableau associatif)
la source
foreach ne fonctionne qu'avec un seul tableau. Pour parcourir plusieurs tableaux, il est préférable d'utiliser la fonction each () dans une boucle while:
each () renvoie des informations sur la clé et la valeur actuelles du tableau et incrémente le pointeur interne de un, ou renvoie false s'il a atteint la fin du tableau. Ce code ne dépendrait pas des deux tableaux ayant des clés identiques ou ayant le même type d'éléments. La boucle se termine lorsque l'un des deux tableaux est terminé.
la source
Cela a fonctionné pour moi:
la source
Vous pouvez utiliser array_merge pour combiner deux tableaux, puis les parcourir.
la source
Sortez-le ...
PHP 5.3+
Avant PHP 5.3
ou combiner
dans sélectionner
démo
la source
la source
Au lieu de la boucle foreach, essayez ceci (uniquement lorsque vos tableaux ont la même longueur).
la source
Je pense que vous pouvez faire quelque chose comme:
$ codes = array ('tn', 'us', 'fr');
$ names = array ('Tunisie', 'États-Unis', 'France');
Cela devrait également fonctionner pour les tableaux associatifs.
la source
Je pense que le moyen le plus simple est simplement d'utiliser la boucle for de cette façon:
la source
Votre code comme celui-ci est incorrect car foreach uniquement pour un seul tableau:
Alternative, changez pour ceci:
la source
array_combine()
a très bien fonctionné pour moi en combinant$_POST
plusieurs valeurs à partir de plusieurs entrées de formulaire dans le but de mettre à jour les quantités de produits dans un panier.la source
Vous pouvez maintenant utiliser $ a pour chaque tableau ....
la source
J'ai résolu un problème comme le vôtre de cette façon:
la source
Vous devriez essayer ceci pour le tableau mettant 2 dans la boucle foreach singlr Supposons que j'ai 2 tableaux 1. $ item_nm 2. $ item_qty
la source
Peu de tableaux peuvent également être itérés comme ceci:
la source
ça marche pour moi
la source