Forum Doku Wiki Blog

Forumsarchiv 2006, August
array-daten &-namen auslesen...

archivierte Beiträge lesen

  1. (PHP) array-daten &-namen auslesen... von Thomas, 15. 08. 2006, 23:28

array-daten &-namen auslesen...

Der folgende Beitrag wurde am 15. 08. 2006, 23:28 Uhr von Thomas veröffentlicht.

Hi!

ich hab eine Session, die (wenn das script laufen soll) ca. so aussieht (is nicht von mir programmiert, aber nicht leicht änderbar):

...
$_SESSION['contents']['31{4}3{8}5'] = array();
$_SESSION['contents']['31{4}3{8}5']['quantity'] = 1;
$_SESSION['contents']['31{4}3{8}5']['attributes'] = array();
$_SESSION['contents']['31{4}3{8}5']['attributes']['4'] = 3;
$_SESSION['contents']['31{4}3{8}5']['attributes']['8'] = 5;

$_SESSION['contents']['13{3}2{7}2'] = array();
....

jetzt will ich das in eine Mysql-Tabelle schreiben lassen:

foreach($_SESSION['cart']['contents'] as $product_image_save) {
      $query = 'insert into orders id values '.$id;

Das is natürlich stark gekürzt (es werden in die Tabelle natürlich viel mehr Daten gespeichert, die sind aber für meine Frage unwichtig):

Also wie erhalte ich die $id, das wäre die erste Nummer des Array-Namens
=> bei ['31{4}3{8}5'] is das 31

Kann mir da jemand helfen?

THX
Thomas

array-daten &-namen auslesen...

Der folgende Beitrag wurde am 16. 08. 2006, 04:55 Uhr von Auge veröffentlicht.

Hallo

> ich hab eine Session, die (wenn das script laufen soll) ca. so aussieht (is nicht von mir programmiert, aber nicht leicht änderbar):
>
> ...
> $_SESSION['contents']['31{4}3{8}5'] = array();
> $_SESSION['contents']['31{4}3{8}5']['quantity'] = 1;
> $_SESSION['contents']['31{4}3{8}5']['attributes'] = array();
> $_SESSION['contents']['31{4}3{8}5']['attributes']['4'] = 3;
> $_SESSION['contents']['31{4}3{8}5']['attributes']['8'] = 5;
> ....

Nunja, sieht verwirrend aus.

> foreach($_SESSION['cart']['contents'] as $product_image_save) {

nanu, wo kommt jetzt das ['cart'] her?

Abgesehen von der Vierdimansionalität, in der _ich_ mich wahrscheinlich verirren täte, kannst du eine foreach-Schleife anweisen, den Key eines Arrayelements auszugeben.

foreach ($bla as $key=>$$val)
   {
   echo $key.": ".$val."\n";
   }


Ansonsten fällt mir da noch die Funktion key() ein.

Tschö, Auge

--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)

Veranstaltungsdatenbank Vdb 0.1

array-daten &-namen auslesen...

Der folgende Beitrag wurde am 16. 08. 2006, 09:32 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

> > $_SESSION['contents']['31{4}3{8}5'] = array();
> > $_SESSION['contents']['31{4}3{8}5']['quantity'] = 1;
> > $_SESSION['contents']['31{4}3{8}5']['attributes'] = array();
> > $_SESSION['contents']['31{4}3{8}5']['attributes']['4'] = 3;
> > $_SESSION['contents']['31{4}3{8}5']['attributes']['8'] = 5;
> > ....
> Abgesehen von der Vierdimansionalität, in der _ich_ mich wahrscheinlich verirren täte, kannst du eine foreach-Schleife anweisen, den Key eines Arrayelements auszugeben.

So wie es aussieht, handelt es sich nicht um vier Dimensionen sondern um eine (unregelmäßige) Baumstruktur mit einer Verschachtelungstiefe von maximal 4 Levels (wenn man das cart unbeachtet lässt). quantity beispielsweise befindet sich in Level 3 und hat nur einen skalaren Wert.

> Ansonsten fällt mir da noch die Funktion key() ein.

key() eignet sich nicht für das Arbeiten mit foreach. für key() wird das Weitersetzen des internen Array-Zeigers benötigt (next()). foreach kümmert sich aber nicht um diesen.


echo "$verabschiedung $name";

array-daten &-namen auslesen...

Der folgende Beitrag wurde am 16. 08. 2006, 13:08 Uhr von Thomas veröffentlicht.

Hi nochmal!

Danke für den Tipp mit key, das werd ich dann einfach umprogrammieren...

Ich wollte das ['cart'] rauslöschen da ich dachte dass es unwichtig is, hab jedoch jetzt noch ein problem entdeckt :-(

['cart'] ist ein object und kein array! Wie kann ich denn dann die ['contents'] auslesen wenn ['cart'] ein object is?

thx
Thomas

array-daten &-namen auslesen...

Der folgende Beitrag wurde am 16. 08. 2006, 13:16 Uhr von dedlfix veröffentlicht.

echo $begrüßung;

> ['cart'] ist ein object und kein array! Wie kann ich denn dann die ['contents'] auslesen wenn ['cart'] ein object is?

So wie bei Objekten üblich mit der Notation $object->property statt $array['key'].


echo "$verabschiedung $name";

Teilstring ermitteln

Der folgende Beitrag wurde am 16. 08. 2006, 15:26 Uhr von Mathias Brodala veröffentlicht.

Hallo Thomas.

> wie erhalte ich aus dem string '31{1}1{2}6{100}12' nur den Wert VOR der ersten geschwungenen Klammer => 31
> anderes Bsp. '4{523}32{5}24' => 4

Recht einfach, indem du mittels strpos nach der ersten geschweiften Klammer suchst und diese Positionsangabe zum Extrahieren eines Teilstrings per substr verwendest.


Einen schönen Mittwoch noch.

Gruß, Mathias

--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[HTML Design Constraints: Logical Markup]

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4