array-daten &-namen auslesen...
Thomas
- php
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
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
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";
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
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";
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