[PHP] beste manier om "dit" te doen?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Anoniem: 195078

Topicstarter
Hallo, Ik heb een script geschreven wat volledig werkend is.
Wat ik wou bereiken heb ik ook bereikt.

Ik wou een 3d array maken en daar dan de waardes van uitlezen dmv een foreach. Ik wil alles netjes in een tabel hebben, op deze manier:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$product = array(
    "id" => array("303980393","303980394","303980395","303980396"),
    "naam" => array("naam1","naam2","naam3","naam4"),
    "aantal" => array("1","2","3","4")
);


foreach ($product['id'] AS $keys){
     $product_id[] = $keys;
}
foreach ($product['naam'] AS $keys){
     $product_naam[] = $keys;
}
foreach ($product['aantal'] AS $keys){
     $product_aantal[] = $keys;
}


for($i=0;$i<count($product_id);$i++){
    echo $product_id[$i] . " " . $product_naam[$i] . " " . $product_aantal[$i] . "<br>";
}

?>


hierboven staat het idd nog niet in een tabel, maar dat is nu geen probleem meer omdat alles in een aparte array staat per arraynumer [0 t/m 3]..maar is het ook mogelijk om ALLES in 1 foreach te doen? mij lijkt van niet, maar graag als iemand mij het tegendeel kan bewijzen!

bvd,

nick

Acties:
  • 0 Henk 'm!

  • Joolee
  • Registratie: Juni 2005
  • Niet online
gebruik een recursieve functie: klik

Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 16-06 13:24

krvabo

MATERIALISE!

PHP:
1
2
3
4
5
foreach ($product AS $keys){
     $product_id[] = $keys['id'];
     $product_naam[] = $keys['naam'];
     $product_aantal[] = $keys['aantal'];
}

?

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

Anoniem: 195078

Topicstarter
bedankt voor jullie reactie

@krvabo
dat werk niet..

Acties:
  • 0 Henk 'm!

  • robbert
  • Registratie: April 2002
  • Laatst online: 01:08
PHP:
1
2
3
for($i=0;$i<count($product["id"]);$i++){
    echo $product["id"][$i] . " " . $product["naam"][$i] . " " . $product["aantal"][$i] . "<br>";
}

Zoiets?

Hoewel ik van die array liever zoiets zou maken (of zelfs nog liever een array met klasses):
PHP:
1
2
3
4
5
6
$product = array(
    array("id" => "303980393", "naam" => "naam1", "aantal" => 1),
    array("id" => "303980394", "naam" => "naam2", "aantal" => 2),
    array("id" => "303980395", "naam" => "naam3", "aantal" => 3),
    array("id" => "303980396", "naam" => "naam4", "aantal" => 4)
);

[ Voor 53% gewijzigd door robbert op 20-12-2006 21:44 ]


Acties:
  • 0 Henk 'm!

Anoniem: 195078

Topicstarter
Het is de bedoeling dat ik alle waardes uit de 3 verschillende arrays in 1 tabel rij kan plaatsen in verschillende kolommen

ID[0]
NAAM[0]
AANTAL[0]

in 1 rij

ID[1]
NAAM[1]
AANTAL[1]

in 1 rij

etc..

[ Voor 27% gewijzigd door Anoniem: 195078 op 20-12-2006 21:45 ]


Acties:
  • 0 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

Maak een struct/object/record* van je items, en stop deze dan in een array.

Nu heb je een array van 3 arrays, waarin je maar moet hopen dat elk de gewenste elementen bevat. Nogal gevoelig voor fouten.

*) Ik weet niet zo goed hoe dat heet in php

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

Anoniem: 195078

Topicstarter
Alle arrays zijn uitbreidbaar,

dus wanneer ik doe

$product['id'][] = "3290483924";
$product['naam'][] "bladiebla";
$product['aantal[] = 1;

komen by alle3 arrays een waarde erbij

dus ook een rij erby..

bvd,
nick

Acties:
  • 0 Henk 'm!

  • krvabo
  • Registratie: Januari 2003
  • Laatst online: 16-06 13:24

krvabo

MATERIALISE!

Anoniem: 195078 schreef op woensdag 20 december 2006 @ 21:40:
bedankt voor jullie reactie

@krvabo
dat werk niet..
Je hebt gelijk, verkeerd gelezen.
Misschien moet je denken over het opnieuw opbouwen van je array ipv zo te werken :P

Pong is probably the best designed shooter in the world.
It's the only one that is made so that if you camp, you die.


Acties:
  • 0 Henk 'm!

Anoniem: 195078

Topicstarter
@varienaja

Alle arrays hebben altijd gelijke aantallen, 100% zeker

Acties:
  • 0 Henk 'm!

  • robbert
  • Registratie: April 2002
  • Laatst online: 01:08
Anoniem: 195078 schreef op woensdag 20 december 2006 @ 21:47:
Alle arrays zijn uitbreidbaar,

dus wanneer ik doe

$product['id'][] = "3290483924";
$product['naam'][] "bladiebla";
$product['aantal[] = 1;

komen by alle3 arrays een waarde erbij

dus ook een rij erby..

bvd,
nick
Kan in het voorbeeld van mijn array of een array van objecten net zo makkelijk..
PHP:
1
2
$product[] = array("id"=>90,"naam"=>"blaat","aantal"=>4);
$product[] = new Product(90,"blaat",4);

Acties:
  • 0 Henk 'm!

Anoniem: 195078

Topicstarter
Dank voor de reacties nogmaals,

@robbert
Als ik alle waardes dus in 1 rij heb als array,
hoe "split" ik deze dan zodat ik ze mooi elk in een <TD> kan zetten?

Want hier heb ik nog niks aan als ik niet apart kan zetten in een TD,

want daar gaat heel dit topic over,

bvd

nick

[ Voor 28% gewijzigd door Anoniem: 195078 op 20-12-2006 21:52 ]


Acties:
  • 0 Henk 'm!

  • robbert
  • Registratie: April 2002
  • Laatst online: 01:08
Hier resp voor mijn array oplossing en een array met objecten.
PHP:
1
2
3
4
5
foreach($product as $p)
  printf("%s %s %s<br />", $p["id"], $p["naam"], $p["aantal"]);

foreach($product as $p)
  printf("%s %s %s<br />", $p->getId(), $p->getNaam(), $p->getAantal());

Acties:
  • 0 Henk 'm!

Anoniem: 195078

Topicstarter
Robbert, je bent mijn held!:P

Heel erg bedankt![iedereen]

[ Voor 9% gewijzigd door Anoniem: 195078 op 20-12-2006 21:57 ]

Pagina: 1