php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.01.2006, 14:07  
Gast
 
Beiträge: n/a
Standard Assoziatives Array mit String initialisieren

Hallo,

ich würde gerne ein assoziatives Array mit folgendem String initialisieren:
$teststring = '"forename" => "Martin", "surname" => "Mustermann", "age" => "20", "birthdate" => "11.12.1984"';
$testarray = array($teststring);

Allerdings liefert mir dieses Vorgehen statt einem Array mit den Identifiern forename, surname, age und birthdate ein Array mit dem Identifier 0 und dem String als Wert.
Gibt es dazu eine Lösung?

Ich würde das gerne verwenden, da ich einer DB-Tabelle aufbereitet Strings wie oben den teststring speichern möchte und diese dann bequem in ein Array zur Weiterverarbeitung umwandeln kann. Gibt es dafür eine bessere Lösung (ich verwende PostgreSQL als DB).

Danke für eventuelle Infos
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 15.01.2006, 14:16  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Der array-Operator erwartet nunmal nicht einen einzelnen String, sondern mehrere Strings, die durch => und Komma getrennt sind.

Um aus einem solchen String die Einzelteile zu entnehmen wirst Du wohl mit preg_match nach den Schlüssel-Wert-Paaren suchen müssen.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 15.01.2006, 14:21  
Gast
 
Beiträge: n/a
Standard

Mir viel grad nichts anders dazu ein:
PHP-Code:
<?php
error_reporting
(E_ALL);

$teststring '"forename" => "Martin", "surname" => "Mustermann", "age" => "20", "birthdate" => "11.12.1984"';

$temp explode(','$teststring);

foreach( 
$temp as $v) {
$ex explode('=>'$v);
$testarray[trim($ex[0],' |"')] = trim($ex[1],' |"');
}

echo 
'<pre>'print_r($testarraytrue), '</pre>';

?>
 
Alt 15.01.2006, 14:27  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Das klappt aber nicht, wenn da mal ein Komma in einem der Werte steckt.
Vielleicht vällt Dir ja noch was anderes ein.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 15.01.2006, 14:30  
Gast
 
Beiträge: n/a
Standard

Pffffffff, müsste ich jetzt Überlegen, keine Lust ...
 
Alt 15.01.2006, 14:37  
Gast
 
Beiträge: n/a
Standard

Ok, 2. Versuch:
PHP-Code:
<?php
error_reporting
(E_ALL);

$teststring '"forename,uhu" => "Martin" , "surname" => "Mustermann", "age" => "20", "birthdate" => "11.12.1984"'

$temp preg_split('#(?<= |"),#'$teststring); 

foreach( 
$temp as $v) { 
$ex explode('=>'$v); 
$testarray[trim($ex[0],' |"')] = trim($ex[1],' |"'); 


echo 
'<pre>'print_r($testarraytrue), '</pre>';
EDIT:

3. Versuch, wenn im Wert ein Komma oder => vorkommt:

PHP-Code:
error_reporting(E_ALL);

$teststring '"forename,uhu" => "Martin" , "sur => name" => "Mustermann", "age" => "20", "birthdate" => "11.12.1984"'

$temp preg_split('#(?<= |"),#'$teststring); 

foreach( 
$temp as $v) {
  
preg_match_all('#(\'|\")(.*)\1#U'$v$ex);
  
$testarraytrim($ex[0][0], ' |"') ] = trim($ex[0][1], ' |"');
}

echo 
'<pre>'print_r($testarraytrue), '</pre>'
... nu ist aber gut ...
 
Alt 15.01.2006, 14:54  
Gast
 
Beiträge: n/a
Standard

jetzt mal ganz bloed gefragt -
geht es nicht auch so:
PHP-Code:
$teststring '"forename" => "Martin", "surname" => "Mustermann", "age" => "20", "birthdate" => "11.12.1984"';
eval(
'$testarray = array(' $teststring ');'
 
Alt 15.01.2006, 14:56  
Gast
 
Beiträge: n/a
Standard

Zitat:
jetzt mal ganz bloed gefragt -
geht es nicht auch so:
Blöde Frage, einfach selber mal ausprobieren !
 
Alt 16.01.2006, 11:06  
Gast
 
Beiträge: n/a
Standard

Danke für die zahlreichen Antworten.
Ich werde mir die Lösungswege mal anschauen und dann berichten, ob es funktioniert.

Schönen Tag noch
 
Alt 16.01.2006, 11:14  
Gast
 
Beiträge: n/a
Standard

Zitat:
Ich würde das gerne verwenden, da ich einer DB-Tabelle aufbereitet Strings wie oben den teststring speichern möchte und diese dann bequem in ein Array zur Weiterverarbeitung umwandeln kann. Gibt es dafür eine bessere Lösung (ich verwende PostgreSQL als DB).
http://php.net/serialize
Oder eine Tabelle (id,array_id,array_key,array_value) verwenden.
 
 


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
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
php schreibt kein array ins array sondern string fragnicht PHP Tipps 2008 10 19.06.2008 15:03
String bei Zeichen X trennen und in array umwandeln MeisterGlanz PHP Tipps 2006 5 13.09.2006 15:28
Multidimensionales Array nach String sortieren ssm PHP Tipps 2006 12 29.03.2006 15:38
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
assoziatives Array aus Datei PHP Tipps 2005-2 2 20.10.2005 19:21
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Assoziatives Array auslesen phpwiki PHP Tipps 2005 4 21.04.2005 13:27
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
assoziatives Array aus 2 Spalten aus Mysql-Tabelle PHP Tipps 2004 2 14.06.2004 13:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array initialisieren, array initialisieren php, php assoziatives array initialisieren, php array definieren, php array deklarieren, php assoziatives array definieren, php array vorbelegen, php array init, array php initialisieren, array deklarieren php, php array initialisierung, php assoziatives array deklarieren, array definieren php, array php definieren, php array initiieren, php array initalisieren, string initialisieren, assoziatives array initialisieren, php initialisierung array, http://www.php.de/php-tipps-2006/35896-assoziatives-array-mit-string-initialisieren.html

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:17 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.