Veröffentlicht 4. Dezember 200915 j Hallo Community, ich komm leider nicht weiter, also irgendwo ist nen Denkfehler bei mir ^^ Und zwar geht es um Folgendes: Ich lese aus einer Datei einen String aus, der wie folgt auf gebaut ist: echo "Wert1;Wert2;Wert3;Wert4;" So nun hätte ich gern diesen String als Array. Mit der Funktion: $meinArray[] = explode( ";", $string ) Als Ergebnis bekomm ich nun ein indiziertes Array das wie folgt aussieht: meinArray[0] = Wert1; meinArray[1] = Wert2; Nun hätt ich aber gern ein assoziatives Array. Natürlich könnt ich jetzt hergehen und meinArray['Biersorte'] = $meinArray[0]; unset $meinArray[0]; usw. aber das ist bei 500 Arrays à 10 Felder vielleicht nicht ganz so performant. Deshalb meine Frage gibt es eine Funktion oder eine Ableitung der Funktion explode die mir direkt ein assoziatives Array erzeugt? Vll mit einem vorderfinierten Array. Schon mal danke fürs Lesen. Grüße
4. Dezember 200915 j PHP: array_combine - Manual $aArrayKeys = {'eins','zwei','drei'}; $deinArray = explode (';',$sWerte); $aFinal = array_combine($aArrayKeys,$deinArray); echo '<pre>'.print_r($aFinal,true).'</pre>'; Gibt FALSE zurück, wenn die Anzahl von Elementen nicht in beiden Arrays identisch ist oder die Arrays leer sind. heißt, es funktioniert nur wenn deine 500 arrays wirklich alle die gleiche länge haben. bzw müsstest sie dann der länge nach gruppiert verarbeiten.
4. Dezember 200915 j Super vielen Dank. Das war genau das nach was ich gesucht hatte Lösung sieht wie folgt aus: foreach ($content as $value) { # Auf eventuelle Leerzeilen reagieren if ( strstr($value, ";") !== false ) { $values = explode(";", $value); $journal[] = array_combine( $keys, $values); } }
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.