php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.11.2011, 15:32  
Erfahrener Benutzer
 
Registriert seit: 28.09.2009
Beiträge: 242
PHP-Kenntnisse:
Anfänger
jwka61 befindet sich auf einem aufstrebenden Ast
Standard x=1|y=2|z=4 in Array umwandlen

Hallo,

ich habe eine Fragestellung, bei dem ich recht sicher bin, dass das schon gelöst ist, vielleicht sogar mit PHP Bordmitteln, aber ich bin noch nicht fündig geworden. Vielleicht kann mir jemand einen Stubs geben?

Ich habe einen Text, der wie im Titel gezeigt aufgebaut ist. Dabei ist das links des "=" stehende der Name, rechts der Wert.

Diesen String möchte ich in ein Array mit Key - Value Paaren umwandeln.

Es soll also

PHP-Code:
$text "x=1|y=2|z=4";
$arr GesuchteFunktion"|""="$text ); 
dasselbe Ergebnis liefern wie:

PHP-Code:
$arr["x"]=1;
$arr["y"]=2;
$arr["z"]=4
Gibt es die gesuchte Funtion im PHP Standard oder muss ich mir eine bauen?

Danke
jwka
__________________
Ich muss PHP im Kontext Home Automation nutzen (Vorgabe Hersteller und nicht zu ändern). Da kommt es leider ggf. auf ms an. Deshalb manche "seltsame" Frage.
jwka61 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.11.2011, 15:36  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Ist mir so grad nicht bekannt, wirst Du wohl selbst bauen müssen.
explode sollte hilfreich sein.
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 24.11.2011, 15:44  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Wenn du zunächst | durch & ersetzt könntest du höchstens parse_str missbrauchen.
PHP-Code:
parse_str(str_replace('|''&'$text), $arr); 
Aber Vorsicht, das kann zu unerwarteten Ergebnissen führen (ich schrieb nicht ohne Grund "missbrauchen" ) sobald deine Werte z.B. '&', '+' oder '%' enthalten.
fab ist offline   Mit Zitat antworten
Alt 24.11.2011, 15:49  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Ich bin ja immer mehr davon überzeugt das was du da baust immer mehr Murks wird..

PHP-Code:
function gesuchteFunktion $thermSep$keyValSep$myString ) {
   
$theArray = array();

   foreach ( 
explode$thermSep$myString) as $item ) {
      
$t explode$keyValSep$item );
      
$theArray$t[0] ] = $t[1];
   }

   return 
$theArray;

Mit Boardmitteln geht explode-each-exploded-therm nicht.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 24.11.2011, 15:57  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

War mal neugierig, ob das funktioniert. Nicht schön, aber selten:
PHP-Code:
preg_match_all'/(\b[a-z]{1}\b)|(\b[0-9]+\b)/i'$text$matches );

for( 
$x=0$x<count($matches[0])-1$x+=) {
    
$array[$matches[0][$x]] = $matches[0][$x+1];
}

print_r$array ); 

Beitrag editiert:
sogar ganz ohne Schleife
PHP-Code:
preg_match_all'/(\b[a-z]{1}\b)|(\b[0-9]+\b)/i'$text$matches );
$array array_combinearray_filter($matches[1]), array_filter($matches[2]) ); 
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein

Geändert von Arne Drews (24.11.2011 um 16:07 Uhr).
Arne Drews ist offline   Mit Zitat antworten
Alt 01.12.2011, 02:06  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
Ich bin ja immer mehr davon überzeugt das was du da baust immer mehr Murks wird..
+1
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 01.12.2011, 13:45  
Neuer Benutzer
 
Registriert seit: 23.06.2011
Beiträge: 27
PHP-Kenntnisse:
Anfänger
dlite befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$arr = array(array(), array());

$wertepaare explode("|"$deinstring);

foreach(
$wertepaare as $key => $inhalt){
    
$werte explode("="$inhalt);

$arr[][0] = $werte[0];
$arr[][1] = $werte[1];
                                                          } 

Vom Sinn her wohl richtig, hoffe ich habe jetzt aber keinen Fehler auf die Schnelle eingebaut. Bin leider etwas in Eile
dlite ist offline   Mit Zitat antworten
Alt 01.12.2011, 13:48  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

das funzt nicht ....

PHP-Code:
$arr[][0] = $werte[0]; -> $arr[0][0]
$arr[][1] = $werte[1]; -> $arr[1][1
lass im Foreach eine Variable hochzählen .. die benutzt du beim ersten Arraykey
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 02.12.2011, 11:01  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
lass im Foreach eine Variable hochzählen .. die benutzt du beim ersten Arraykey
Nicht nötig...
PHP-Code:
$arr[] = array($werte[0], $werte[1]); 
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 02.12.2011, 11:58  
Erfahrener Benutzer
 
Registriert seit: 13.05.2011
Beiträge: 188
PHP-Kenntnisse:
Fortgeschritten
php1704 wird schon bald berühmt werden
Standard

PHP-Code:
$vars parse_ini_string(str_replace("|""\n"$text)); 
Grüße.
php1704 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PDF im Browser Streamen PiXeL1337 PHP Einsteiger 22 08.09.2011 16:24
[Erledigt] Mehrdimensionalem Array umformen, Index neu setzen und anschließend sortie wooha PHP Einsteiger 3 26.04.2011 12:08
Array aus SQL Abfrage zusammenbauen um es rekursiv abzuarbeiten litterauspirna PHP Einsteiger 7 01.02.2011 18:44
Array werte zusammen rechnen fabi288 PHP Einsteiger 13 03.01.2011 16:08
mehrdimensionales array inhalte tauschen pidaman PHP Tipps 2010 18 27.08.2010 16:58
Feed in Datenbank eintragen (Formate: json, php serialized, xml) high_five Datenbanken 5 17.06.2010 03:04
[Erledigt] Sortierung mehrerer Arrays philosapiens PHP Tipps 2010 16 08.06.2010 05:22
IE8 verliert Session Lenki PHP-Fortgeschrittene 10 25.04.2010 01:10
[Erledigt] Problem bei update mit array feldern fulltilt PHP Tipps 2010 6 13.02.2010 00:59
[Erledigt] Tabellen die sich selbst referenzieren Squall PHP Tipps 2009 19 04.08.2009 21:33
Array umwandeln von zwei zu mehrdimensional erselbst PHP Tipps 2009 6 02.04.2009 23:30
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum