Ich möchte ein selectbox
Array mit zwei Arrays generieren , eines mit den Ländercodes und eines mit den Ländernamen.
Dies ist ein Beispiel:
<?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>';
}
?>
Diese Methode hat bei mir nicht funktioniert. Irgendwelche Vorschläge?
foreach
arbeitet jeweils nur mit einem Array.So wie Ihr Array strukturiert ist, können Sie
array_combine()
sie in ein Array von Schlüssel-Wert-Paaren und dann inforeach
dieses einzelne Array einteilen:Oder wie in den anderen Antworten zu sehen ist, können Sie stattdessen ein assoziatives Array fest codieren.
quelle
Verwenden Sie
array_combine()
diese Option, um die Arrays miteinander zu verschmelzen und das Ergebnis zu durchlaufen.quelle
Verwenden Sie ein assoziatives Array:
Ich glaube, dass die Verwendung eines assoziativen Arrays der sinnvollste Ansatz ist, im Gegensatz zur Verwendung,
array_combine()
da Sie, sobald Sie ein assoziatives Array haben, einfach genau das Array verwendenarray_keys()
oderarray_values()
erhalten können, das Sie zuvor hatten.quelle
array_combine()
erzeugt bereits ein assoziatives Array. Möglicherweise möchten Sie die Initialisierung als assoziatives Array klarer gestalten .array_map scheint auch dafür gut zu sein
Weitere Vorteile sind:
Wenn ein Array kürzer als das andere ist, empfängt der Rückruf
null
Werte, um die Lücke zu füllen.Sie können mehr als 2 Arrays zum Durchlaufen verwenden.
quelle
Warum nicht einfach zu einem
mehrdimensionalenassoziativen Array zusammenfassen? Scheint, als würden Sie das falsch machen:wird:
quelle
Alles vollständig getestet
3 Möglichkeiten, um ein dynamisches Dropdown-Menü aus einem Array zu erstellen.
Dadurch wird ein Dropdown-Menü aus einem Array erstellt und der entsprechende Wert automatisch zugewiesen.
Methode 1 (normales Array)
Methode 2 (normales Array)
Methode 3 (assoziatives Array)
quelle
foreach funktioniert nur mit einem einzelnen Array. Um mehrere Arrays zu durchlaufen, ist es besser, die Funktion each () in einer while-Schleife zu verwenden:
each () gibt Informationen über den aktuellen Schlüssel und den Wert des Arrays zurück und erhöht den internen Zeiger um eins oder gibt false zurück, wenn er das Ende des Arrays erreicht hat. Dieser Code wäre nicht abhängig von den zwei Arrays mit identischen Schlüsseln oder derselben Art von Elementen. Die Schleife wird beendet, wenn eines der beiden Arrays beendet ist.
quelle
Das hat bei mir funktioniert:
quelle
Mit array_merge können Sie zwei Arrays kombinieren und dann durchlaufen.
quelle
Geh raus ...
PHP 5.3+
Vor PHP 5.3
oder kombinieren
in auswählen
Demo
quelle
quelle
Versuchen Sie dies anstelle einer foreach-Schleife (nur wenn Ihre Arrays dieselbe Länge haben).
quelle
Ich denke, dass Sie so etwas tun können:
$ Codes = Array ('tn', 'us', 'fr');
$ names = array ('Tunesien', 'USA', 'Frankreich');
Es sollte auch für assoziative Arrays funktionieren.
quelle
Ich denke, der einfachste Weg ist, die for-Schleife folgendermaßen zu verwenden:
quelle
Ihr Code wie dieser ist falsch, da er nur für ein einzelnes Array gilt:
Alternative, ändern Sie dies:
quelle
array_combine()
hat bei mir hervorragend funktioniert, als$_POST
mehrere Werte aus mehreren Formulareingaben kombiniert wurden , um die Produktmengen in einem Warenkorb zu aktualisieren.quelle
Jetzt können Sie $ a für jedes Array verwenden ....
quelle
Ich habe ein Problem wie das Ihre folgendermaßen gelöst:
quelle
Sie sollten dies versuchen, um 2 Arrays in eine einzelne foreach-Schleife zu setzen. Angenommen, ich habe 2 Arrays 1. $ item_nm 2. $ item_qty
quelle
Nur wenige Arrays können auch so iteriert werden:
quelle
Für mich geht das
quelle