php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.04.2006, 17:40  
Benutzer
 
Registriert seit: 28.03.2005
Beiträge: 46
Ryson
Standard C-Array zu PHP-Array

Hallo,


in C/C++ gibt es wohl die Möglichkeit, Arrays so zu definieren:
array[] = {'a', 'b', 1, {...}, 'x'};
...oder so ähnlich, nur als Beispiel.

Gibt es eine Funktion, um den Ausdruck "{...}"
sicher in ein PHP-Array zu konvertieren?


Gruß, Ryson.
Ryson ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.04.2006, 17:57  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich verstehe glaub ich nicht so ganz.

Um von C++ wegzukommen:
Du willst einen String diesen Formats
Code:
{'a', 'b', 1, {...}, 'x'}
in einen Array bekommen?

Wie liegt dir dieser String vor, in einer Datei oder schon als String?
Zergling-new ist offline  
Alt 13.04.2006, 18:24  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Du meinst vermutlich so etwas:
PHP-Code:
<?php
    $array 
= array('a''b'1, array('...'), 'x');
?>
xabbuh ist offline  
Alt 13.04.2006, 18:51  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Der Thread wurde verschoben, wegen ...
... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21515

verschoben
Corvin ist offline  
Alt 13.04.2006, 19:44  
Benutzer
 
Registriert seit: 28.03.2005
Beiträge: 46
Ryson
Standard

@ Corvin Gröning:
Ich bin anderer Meinung.
Vielleicht habe ich manchmal noch Anfänger-Fragen,
aber ich bin kein Anfänger mehr.
Und ich hatte mir vorher durchaus überlegt, wo ich poste.
Soll ich demnächst sicherheitshalber alles unter Anfänger schreiben?
Und wenn Du übrigens schon dieser Ansicht bist,
kannst Du mir doch auch gleich noch die Frage beantworten. :P


Zitat:
Gibt es eine Funktion, um den Ausdruck "{...}"
sicher in ein PHP-Array zu konvertieren?
@Zergling:
Ja, der Ausdruck liegt als String vor.
Der Ursprung ist zwar eine Datei, aber macht das denn einen Unterschied?
In beiden Fällen habe ich Text, der nicht serialize-konform ist.

@xabbuh:
Danke, aber ich weiß, wie man arrays in PHP anlegt und behandelt.
Ok, theoretisch könnte ich "{" durch "array(" und "}" durch ")" ersetzen
und das Ganze durch eval() jagen.
Es funktioniert an sich auch prima.
ABER: es gibt keine Gewährleistung,
dass ein Wert innerhalb des Arrays nicht auch "{" oder "}" enthält.
Ryson ist offline  
Alt 13.04.2006, 19:55  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Zitat:
Zitat von Ryson
Danke, aber ich weiß, wie man arrays in PHP anlegt und behandelt. ;)
Ich war bei meinem Beitrag davon ausgegangen, dass die geschweiften Klammern in C bzw. C++ als Begrenzer fungieren, wenn mehrere Elemente auf einmal einem Array zugewiesen werden sollen, wie das meines Wissens nach beispielsweise auch in Java der Fall ist.

In welcher Art und Weise soll die Beispielzeichenkette denn in ein Array zerlegt werden?
xabbuh ist offline  
Alt 13.04.2006, 20:13  
Benutzer
 
Registriert seit: 28.03.2005
Beiträge: 46
Ryson
Standard

Zitat:
Zitat von xabbuh
Ich war bei meinem Beitrag davon ausgegangen, dass die geschweiften Klammern in C bzw. C++ als Begrenzer fungieren, wenn mehrere Elemente auf einmal einem Array zugewiesen werden sollen, wie das meines Wissens nach beispielsweise auch in Java der Fall ist.

In welcher Art und Weise soll die Beispielzeichenkette denn in ein Array zerlegt werden?
Du liegst schon richtig, sie fungieren als Begrenzer.
In Java sieht der Ausdruck wohl genauso aus.
Ich weiß aber vorher nicht, wie die diese Art von Array,
die mir nur als String vorliegt,
aufgebaut oder besser gesagt dimensioniert ist.

Sehe ich etwa ein Problem wo keines ist?
Die Schreibweise "{}" gleicht zwar der "array()",
aber ich kann "{}" ja nicht in PHP ausführen, oder?
Ryson ist offline  
Alt 13.04.2006, 20:19  
Benutzer
 
Registriert seit: 28.03.2005
Beiträge: 46
Ryson
Standard

Ok, ein konkretes Beispiel:
Wie komme ich von "{'a', 'b', 1, {...}, 'x'}"
nach $x = array('a', 'b', 1, array(...), 'x');
Ryson ist offline  
Alt 13.04.2006, 22:01  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
<?php
// von {'a', 'b', 1, {...}, 'x'}
// nach $x = array('a', 'b', 1, array(...), 'x');
$str "{'a', 'b', 1, {...}, 'x'}";

while ( 
preg_match('/\{(.*)\}/is'$str) ) {
    
$str preg_replace('/\{(.*)\}/is''array(\\1)'$str);
}

echo 
$str;

?>
Das sollte ein Fortgeschrittener aber allemal auf die Reihe bekommen.
Corvin ist offline  
Alt 13.04.2006, 23:02  
Benutzer
 
Registriert seit: 28.03.2005
Beiträge: 46
Ryson
Standard

Vielen Dank für Deine Antwort!

Muss ich mich wirklich mit regulären Ausdrücken auskennen,
bevor ich mich nicht mehr Anfänger nennen muss?

Ich habe mich bisher nur ansatzweise damit beschäftigt
und es ist keine so einfache Angelegenheit,
den richtigen regulären Ausdruck zu finden.
Ich bin jedenfalls bei solch kryptischen Zeichen sehr verunsichert,
ob das Ergebnis auch wirklich immer den Anforderungen entspricht.


So, nun zu Deiner Lösung.

Das Ergebnis ist noch kein Array,
aber das ist wohl nur eine Frage der richtigen Funktion...

Das Ergebnis ist zwar besser als ich es mit str_replace erziele,
aber es ist noch nicht fehlerfrei:


$szArray = '{1, "a", {1, 2, 3, "}", "{"}, "x", "{1, 2, 3}"}';

Die Werte stehen immer in ", aber das ist ja nicht das Problem,
also bitte nicht steinigen, wenn ich es oben anders habe.
Dein Algorithmus läuft bei " und ' auf das Gleiche hinaus.

Ich habe, auch wenn es in C an sich wohl nicht möglich ist,
verschiedene Datentypen in diesem "Array" gemischt:
Zahlen stehen ohne ", Strings mit.
Ryson 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
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Soapfault: Undefined Property Argi PHP-Fortgeschrittene 0 28.07.2008 11:17
Kategoriedaten rekursiv in Array bringen Schiedsrichter PHP Tipps 2008 2 10.12.2007 15:43
ARRAY: alle möglichen Kombinationen Tentacle PHP Tipps 2006 13 12.05.2006 00:18
Übersicht aus mehrdimensionalem Array erzeugen Crypi PHP-Fortgeschrittene 0 30.01.2006 13:44
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
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
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array wie auslesen? PHP Tipps 2005 7 07.03.2005 11:43
[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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
array php unterschied c, arrays c und php, \c array\, unterschiede array php und c, c array aus php, php array to cpp array, \c-array\ php umwandeln, dimensioniertes array php, array c / php

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