Variabele laatste getal
Mijn vraag is, hoe krijg ik steeds het laatste getal eruit?
Hoeveel getallen staan er dan in "$qty" wanneer je het laatste getal eruit wilt halen?
nou wil ik gewoon 5 hebben. hopelijk snappen jullie het nu.
@Jelle - nee werkt niet.
Alvast bedankt,
moet gewoon werken hoor
Gewijzigd op 12/11/2010 10:25:03 door John D
Ik ga hier even mee aan de slag. Bedankt voor de reacties. Ik zie nu ook dat het werkt maar moet even wat aanklooien met een foreach loop.
Gewijzigd op 12/11/2010 10:29:07 door - Mark -
array("1", "2", "3", "4", "5")
Dan kan je gemakkelijker de laatste ophalen en zonder fouten zoals John D benoemd, bij 10 of 100.
Gewijzigd op 12/11/2010 10:52:06 door Jacco Engel
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
$contents = array();
foreach ($items as $item)
{
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
foreach ($contents as $id=>$qty)
{
echo $qty;
}
}
foreach ($items as $item)
{
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
foreach ($contents as $id=>$qty)
{
echo $qty;
}
}
dan krijg ik 12345 dus ik had niet goed opgelet.
hebben jullie een idee hoe ik dan het laatste getal uit qty kan krijgen?
bedankt voor al jullie reacties
Gewijzigd op 12/11/2010 10:59:28 door Tim Fendt
wat zit erin in $contents?
blijft nogsteeds 12345.
Als je 12345 als output krijgt klopt er iets niet in je display. Cijfers moet je altijd scheiden. Bijvoorbeeld door een komma. Dan kan je vervolgens met een explode de cijfers weer lostrekken en de laatste ophalen.
Ik zag je edit te laat, Hoe ziet je items array eruit als ik vragen mag? Het ziet er allemaal wat vreemd uit.
Code (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
25
26
27
28
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
28
<?php
$cart = $_SESSION['cart'];
$items = explode(',',$cart);
$contents = array();
foreach ($items as $item)
{
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
foreach ($contents as $id=>$qty)
{
echo $qty;
}
}
//dit staat in session cart (als het goed is)
case 'add':
if ($cart)
{
$cart .= ','.$_GET['id'];
}
else
{
$cart = $_GET['id'];
}
break;
?>
$cart = $_SESSION['cart'];
$items = explode(',',$cart);
$contents = array();
foreach ($items as $item)
{
$contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
foreach ($contents as $id=>$qty)
{
echo $qty;
}
}
//dit staat in session cart (als het goed is)
case 'add':
if ($cart)
{
$cart .= ','.$_GET['id'];
}
else
{
$cart = $_GET['id'];
}
break;
?>
Gewijzigd op 12/11/2010 11:11:22 door Tim Fendt
Je gooit elk item los in je winkelwagen en nu wil je weten hoevel er van elk item is?
inderdaad :D
LET OP! Je kunt onderstaande code niet plakken in jouw script, Het idee was om je de werking uit te leggen. even in een appart bestandje zetten dus.
Ik weet niet wat beter is, ik heb nog nooit een webshop gebouwd maar ik denk dat gemakkelijker is als je $_SESSION['cart'] direct de tweede array bevat.
Code (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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
/*---- INFO! ---->
Stel we hebben een winkelwagen met de volgende inhoud:
3 X artikel 1.
2 X artikel 3.
3 X artikel 4.
LET OP! Deze data staat op een verkeerde manier in $_SESSION['cart'] in jouw script als je het mij vraagt.
Jij hebt de data in $_SESSION['cart'] als een string opgeslagen. Je maakt er doormiddel van explode
een array van. Waarom niet de data direct als een array in $_SESSION['cart'] opslaan?
*/
$chart = array(1, 3, 4, 3, 1, 4, 4, 1);
/*---- INFO! ---->
Dan gaan we nu een nieuwe array aanmaken met daarin het aantal van elk item.
In $chart_items komt nu als het goed is het volgende te staan:
array(1 => 3, 3 => 3, 4 => 3)
In andere woorden:
3 X artikel 1.
2 X artikel 3.
3 X artikel 4.
We zijn dan dus weer terug bij het begin eigenlijk.
*/
$chart_items = array_count_values($chart);
/*---- INFO! ---->
Dan gaan we nu alle Items weergeven.
*/
foreach($chart_items as $item => $count){
echo 'We hebben '.$count.' keer item '.$item.'.<br />';
}
?>
/*---- INFO! ---->
Stel we hebben een winkelwagen met de volgende inhoud:
3 X artikel 1.
2 X artikel 3.
3 X artikel 4.
LET OP! Deze data staat op een verkeerde manier in $_SESSION['cart'] in jouw script als je het mij vraagt.
Jij hebt de data in $_SESSION['cart'] als een string opgeslagen. Je maakt er doormiddel van explode
een array van. Waarom niet de data direct als een array in $_SESSION['cart'] opslaan?
*/
$chart = array(1, 3, 4, 3, 1, 4, 4, 1);
/*---- INFO! ---->
Dan gaan we nu een nieuwe array aanmaken met daarin het aantal van elk item.
In $chart_items komt nu als het goed is het volgende te staan:
array(1 => 3, 3 => 3, 4 => 3)
In andere woorden:
3 X artikel 1.
2 X artikel 3.
3 X artikel 4.
We zijn dan dus weer terug bij het begin eigenlijk.
*/
$chart_items = array_count_values($chart);
/*---- INFO! ---->
Dan gaan we nu alle Items weergeven.
*/
foreach($chart_items as $item => $count){
echo 'We hebben '.$count.' keer item '.$item.'.<br />';
}
?>
:p hopelijk sla ik de plank niet volledig mis zoals wel vaker het geval is.