- Detta ämne har 16 svar, 5 deltagare, och uppdaterades senast för 12 år, 1 månad sedan av JohanK.
-
FörfattareInlägg
-
22 oktober, 2012 kl. 19:25 #154305DanDeltagare
Loopa denna arrayen och skapa en ny baserad på produktid för att hitta antal unika prosukter.
Foreach($products as $key=>$val)
$unikaidn[$val[id]]=1;Echo count($unikaidn);
22 oktober, 2012 kl. 19:54 #154308JohanKDeltagare@Dan 54434 wrote:
Loopa denna arrayen och skapa en ny baserad på produktid för att hitta antal unika prosukter.
Foreach($products as $key=>$val)
$unikaidn[$val[id]]=1;Echo count($unikaidn);
Menar du såhär? Funkade inte om jag inte körde så här,
Lägger jag in 6 produkter i korgen så printar den 6. Lägger jag 2 av varje på 6 produkter så printar den 6.
foreach($products as $key=>$val){
foreach($products as $key=>$val){
$unikaidn[$val[id]]=1;
}}
Echo count($unikaidn);[/CODE][CODE]foreach($products as $key=>$val){
foreach($products as $key=>$val){
$unikaidn[$val[id]]=1;
}}
Echo count($unikaidn);[/CODE]22 oktober, 2012 kl. 20:02 #154309DanDeltagareVisa arrayen när du har identiska produkter i den.
22 oktober, 2012 kl. 20:22 #154310GregerADeltagareJag ramlade in i tråden, och undrar om ni inte missförstår varann lite.
Som jag tolkar det, så vill Johan ha det så här:
produkt A 2 st
produkt B 1 st
produkt C 1 st
+ 11 andra produkterTotalt antal produkter i det här fallet är alltså 15 (varav 4 i de tre första raderna).
Det du får göra är att summera antalet fr.o.m fjärde elementet i arrayen, om arraystorleken är större än tre.
Edit: nåt sånt här borde funka
$i = 0;
$cnt = 0;
foreach ($products as $product){
if ($i>2) $cnt = $cnt + $product[quantity];
$i++;
}
echo $cnt;[/CODE]
Jag har förutsatt att de tre rader du vill visa ligger först i arrayen.[CODE]
$i = 0;
$cnt = 0;
foreach ($products as $product){
if ($i>2) $cnt = $cnt + $product[quantity];
$i++;
}
echo $cnt;[/CODE]
Jag har förutsatt att de tre rader du vill visa ligger först i arrayen.
22 oktober, 2012 kl. 20:36 #154311Christoffer TyreforsDeltagareJag är kanske är trög, men förstår inte riktigt om du löst det eller om du inte gjort det: vad är egentligen problemet?
Om du får mig att förstå skriver jag gärna ihop koden åt dig hehe
22 oktober, 2012 kl. 20:44 #154312Christoffer TyreforsDeltagare@GregerA 54439 wrote:
Jag ramlade in i tråden, och undrar om ni inte missförstår varann lite.
Som jag tolkar det, så vill Johan ha det så här:
produkt A 2 st
produkt B 1 st
produkt C 1 st
+ 11 andra produkterTotalt antal produkter i det här fallet är alltså 15 (varav 4 i de tre första raderna).
Det du får göra är att summera antalet fr.o.m fjärde elementet i arrayen, om arraystorleken är större än tre.
Edit: nåt sånt här borde funka
$i = 0;
$cnt = 0;
foreach ($products as $product){
if ($i>2) $cnt = $cnt + $product[quantity];
$i++;
}
echo $cnt;[/CODE]
Jag har förutsatt att de tre rader du vill visa ligger först i arrayen.
skrev precis dans exempel modiferat till ditt grundinlägg. Du hann ju svara, men kastar ut koden iallafall, den gör iallafall precis som inlägget ovanför här 🙂
[PHP]$count = 0;
foreach ($products as $product) {
if ($count == 3) {
echo ”+”. (count($products)-3) .” andra produkter”;
break;
}
else {
echo ”{$product[’name’]} – {$product[’quantity’]}st”;
$count++;
}
}[/PHP][CODE]
$i = 0;
$cnt = 0;
foreach ($products as $product){
if ($i>2) $cnt = $cnt + $product[quantity];
$i++;
}
echo $cnt;[/CODE]
Jag har förutsatt att de tre rader du vill visa ligger först i arrayen.
skrev precis dans exempel modiferat till ditt grundinlägg. Du hann ju svara, men kastar ut koden iallafall, den gör iallafall precis som inlägget ovanför här
[PHP]$count = 0;
foreach ($products as $product) {
if ($count == 3) {
echo ”+”. (count($products)-3) .” andra produkter”;
break;
}
else {
echo ”{$product} – {$product}st”;
$count++;
}
}[/PHP]23 oktober, 2012 kl. 15:21 #154376JohanKDeltagareStort tack för hjälpen!!
Nu funkar det!
-
FörfattareInlägg
- Du måste vara inloggad för att svara på detta ämne.