php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.09.2010, 11:18  
Neuer Benutzer
 
Registriert seit: 05.09.2010
Beiträge: 1
PHP-Kenntnisse:
Anfänger
mattin_m befindet sich auf einem aufstrebenden Ast
Standard array values in keys umwandeln

Guten Morgen,

ich habe folgendes Problem:

ich habe hier ein Array, mit den Values nach dem explode
PHP-Code:
$text 'item.test.6.12134.12.12.343.4546';
$text explode('.',$text);

Array
(
    [
0] => item
    
[1] => test
    
[2] => 6
    
[3] => 12134
    
[4] => 12
    
[5] => 12
    
[6] => 343
    
[7] => 4546

daraus will ich ein Array bauen, das nur aus Keys besteht und der letzte Value als Wert hinzugefügt wird.
Hat jemand eine Idee wie sowas gemacht wird ?

PHP-Code:
Array
(
    [
item] => Array
        (
            [
test] => Array
                (
                    [
6] => Array
                        (
                            [
12134] => Array
                                (
                                    [
12] => Array
                                        (
                                            [
12] => Array
                                                (
                                                    [
343] => 4546
                                                
)

                                        )

                                )

                        )

                )

        )





Viele Grüße

mattin_m
mattin_m ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.09.2010, 11:33  
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 495
PHP-Kenntnisse:
Fortgeschritten
mimomamu sorgt für eine eindrucksvolle Atmosphäremimomamu sorgt für eine eindrucksvolle Atmosphäre
Standard

PHP-Code:
$result array_pop($array);
foreach (
array_reverse($array) as $value) {
  
$result = array($value => $result);

__________________
Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden
mimomamu ist offline  
Alt 05.09.2010, 15:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
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:
und der letzte Value als Wert hinzugefügt wird
Das klingt doch jetzt schon nach einer fehlerhaften Konvention.
__________________
--
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  
Alt 05.09.2010, 15:48  
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

jo, warum nicht so?
PHP-Code:
$text 'item.test.6.12134.12.12.343=4546';
list(
$path,$value) = explode('='$text2);
$result = array();
$current =& $result;
foreach(
explode('.'$path) as $key) {
    
$current =& $current[$key];
}
$current $value
sieht zwar erstmal umständlicher aus, hat aber den Vorteil dass 1. klar zwischen Schlüsseln und Wert unterschieden wird und 2. $result schon vorbelegt sein kann, da es nicht überschrieben wird, sondern lediglich der Wert an der spezifizierten Stelle eingefügt wird. Praktisch, wenn $text z.B. eine Zeile in einer Konfigurationsdatei ist.


Edit: das selbe noch mal etwas schöner:

PHP-Code:
$text 'item.test.6.12134.12.12.343=4546';
$array = array();
insert_into_array($text$array);

/**
  * @param string $spec Spezifikation in der Form 'item_1.item_2.[...].item_n=wert'
  * @param array $array Ziel-Array
  */
function insert_into_array($spec, &$array)
{
    list(
$path,$value) = explode('='$spec2);
    
$current =& $array;
    
// setze Referenz $current Schritt für Schritt auf $array['item_1']['item_2'][...]['item_n']
    
foreach(explode('.'$path) as $key) {
        
$current =& $current[$key];
    }
    
// belege dieses Array-Element mit $value
    
$current $value;


Geändert von fab (05.09.2010 um 15:53 Uhr).
fab ist offline  
Alt 05.09.2010, 15:53  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
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

Vorsicht mit foreach und Referenz. Da hatten wir hier mal ein Thema mit seltsamen Seiteneffekten.
__________________
--
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  
Alt 05.09.2010, 15:56  
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

Der Code ist mit dieser Eingabe jedenfalls erfolgreich getestet. Kann es sein dass Du so etwas wie foreach($a as &$v) meinst?
fab ist offline  
Alt 05.09.2010, 16:11  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.990
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

Ja, wahrscheinlich. http://www.php.de/off-topic-diskussi...tml#post493837 (Quizfrage)
__________________
--
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  
Alt 05.09.2010, 16:32  
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

Trotzdem interessant.. ich denke, dadurch dass ich das ganze jetzt in eine Funktion gepackt habe sollte die Gefahr von Seiteneffekten gebannt sein.
fab ist offline  
 


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
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
Pathfinding Algorithmus optimieren? (Algorith. von Dijkstra) Martin13 PHP Tipps 2007 19 04.09.2007 19:20
Differenz zwischen 2 Zahlen duderino PHP Tipps 2006 19 10.08.2006 22:12
Values und Keys vom Array seven-12 PHP Tipps 2006 8 25.04.2006 14:26
PRoblem mit Cookie bei PHPbb-Board PHP Tipps 2007 8 12.12.2005 20:56
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php array values to keys, php array keys umwandeln, array value to key, http://www.php.de/php-einsteiger/71475-array-values-keys-umwandeln.html, array values as key, php array values keys umwandeln, array values as keys, array values, perfomance array object, php values to keys, php 1 array als key ein array als value, php array value to key, php array values als keys, array keys zu values, php explode in key value, php array keys in values umwandeln, key=value php in array umwandeln, \php\ array in zahl umwandeln, php array values as keys, php inhalt eines arrays in keys umwandeln

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