[PHP]Nested Array uitpluizen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Array
(
    [\'20001\'] => Array
        (
            ['zw_1318'] => 2
            ['zw_2030'] => ..
            ['kleur_1318'] => ..
            ['kleur_2030'] => ..
        )

    [\'20002\'] => Array
        (
            ['zw_1318'] => ..
            ['zw_2030'] => ..
            ['kleur_1318'] => ..
            ['kleur_2030'] => ..
        )

    [\'20003\'] => Array
        (
            ['zw_1318'] => ..
            ['zw_2030'] => ..
            ['kleur_1318'] => ..
            ['kleur_2030'] => ..
        )

)


Ik heb hier een array met behulp van een FORM ingevuld de names van de form zijn als volgt:

<SELECT name="bestel['20003']['kleur_2030']">

Maar nu moet ik deze arrays in de array eruit gaan vissen dus bijv 20003. Ik heb al geprobeerd om ze afzonderlijk te printen om te testen met :

PHP:
1
2
3
4
5
print_r($_POST['bestel']['20001']);

deze geprobeerd: 

print_r($_POST['20001']);

Maar niets helpt.. ook vind ik het vaag dat hij "\" gebruikt in de array want dat heb ik niet in me bron staan. Kan iemand mij helpen met dit probleem want ik ben nu radeloos :'(

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Is het nu de bedoeling om dit te krijgen:

Optie A
20003:
zw_1318 = ..
zw_2030 = ..
kleur_1318 = ..
kleur_2030 = ..

of

Optie B
Kleur_2030:
20001 = ..
20002 = ..

of

Optie C
20003 > 1318:
zw = ..
kleur = ..

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Antwoord b :)


want ik moet de fotonaam ook nog vergelijken :S

[ Voor 70% gewijzigd door Verwijderd op 01-12-2004 15:14 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

code:
1
<SELECT name="bestel['20003']['kleur_2030']">


haal daar de enkele quotes eens weg in ieder geval. In HTML moet je die er namelijk niet inzetten.

[ Voor 3% gewijzigd door Bosmonster op 01-12-2004 14:54 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In me code staat ie nu zo :
PHP:
1
2
3
4
5
echo "<TD><SELECT name=\"bestel[$file[title]]"."[$label]\">\n";

// HIJ WAS ZO

echo "<TD><SELECT name=\"bestel['$file[title]']"."['$label']\">\n";


kijk anders op deze URL

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Hmm.. Dan zou het toch moeten werken met
PHP:
1
print_r( $_POST['20003'] );


Ale je daar al geen resultaat mee op je scherm krijgt, dan is dat gek. Maar optie A zou je met dit scriptje wel aardig op je scherm moeten krijgen:

PHP:
1
2
3
foreach ($arr as $key => $value) {
   echo $key . " = " . $value . "<br />\n";
}

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PHP:
1
print_r($_POST[bestel][20001]);


Deze werkt nu ineens wel :? Heel vaag.

Maar het moet optie B zijn

[ Voor 14% gewijzigd door Verwijderd op 01-12-2004 15:15 . Reden: verkeerde antwoord gekozen ]


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

OkkE schreef op woensdag 01 december 2004 @ 14:57:
Hmm.. Dan zou het toch moeten werken met
PHP:
1
print_r( $_POST['20003'] );


Ale je daar al geen resultaat mee op je scherm krijgt, dan is dat gek. Maar optie A zou je met dit scriptje wel aardig op je scherm moeten krijgen:

PHP:
1
2
3
foreach ($arr as $key => $value) {
   echo $key . " = " . $value . "<br />\n";
}
Nee hoor.....
PHP:
1
2
3
4
$_POST['20003'] != $_POST["\'20003\'"]
// dus het volgende zou wel moetne werken...

print_r( $_POST["\'20003\'"] );


De \' zijn onderdeel van de string van de key

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
LuCarD schreef op woensdag 01 december 2004 @ 15:16:
[...]


Nee hoor.....
PHP:
1
print_r( $_POST["\'20003\'"] );
Dat werkt niet heb het net uitgetest.

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Maar, ik lees dat het optie B moet zijn.. Dan vraag ik me af of het niet slimmer is om je $_POST array anders op te bouwen. :)

[ Voor 62% gewijzigd door OkkE op 01-12-2004 15:31 . Reden: lamaar ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op woensdag 01 december 2004 @ 15:29:
[...]


Dat werkt niet heb het net uitgetest.
probeer eens als volgt?
PHP:
1
print_r( $_POST["\\'20003\\'"] );

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
OkkE schreef op woensdag 01 december 2004 @ 15:29:
Maar, ik lees dat het optie B moet zijn.. Dan vraag ik me af of het niet slimmer is om je $_POST array anders op te bouwen. :)
Wat zou dan het makkelijkste zijn want ik moet namelijk deze waardes in een "winkelwagen" stoppen

dus foto > 20002 is bijvoorbeeld in formaat zw_1318 tien keer besteld

Acties:
  • 0 Henk 'm!

  • WormLord
  • Registratie: September 2003
  • Laatst online: 10:10

WormLord

Devver

Verwijderd schreef op woensdag 01 december 2004 @ 15:39:
[...]


Wat zou dan het makkelijkste zijn want ik moet namelijk deze waardes in een "winkelwagen" stoppen

dus foto > 20002 is bijvoorbeeld in formaat zw_1318 tien keer besteld
Of: in formaat zw_1318 is foto 20002 10 keer besteld.
Je naamgeving wordt dan dus bv: 'bestel[zw_1318][20002]'.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik ben het met een aantal mensen eens hier; volgens mij moet je eerst eens wat doen aan de naamstelling van je form-elementen. Ik begrijp dat dat niet het antwoord is dat je wilt horen, maar ik zou het toch eens serieus overwegen en bekijken.

Overigens, en op voorhand wil ik zeggen dat ik normaliter niet zo snel verwijs naar handleidingen of documentaties, is de PHP handleiding erg handig om eens te spelen met en te bekijken wat er mogelijk is met PHP en arrays. Vooral alle functies (zijn er wel wat...) doornemen kan later altijd van pas komen.
Pagina: 1