Uffe82Medlem sedan feb. 200711 inlägg Är helt seg nu..
Hur kan jag göra för att jämföra en array med typ dessa värden
vinst
förlust
förlust
förlust
oavgjord
oavgjord
vinst
vinst
vinst
vinst
resultatet jag vill åt är
--- Antalet vinster/oavgjorda/förluster i rad
snabba svar önskas.. tack!!
PeddaMedlem sedan juni 20006 032 inlägg För att räkna ihop så kan man ju använda array_count_values()
Men om du bara vill ha hur många som är i rad så måste man nog loopa igenom och kolla.
Uffe82Medlem sedan feb. 200711 inlägg Hur
Hur skall jag loopa igenom då?
PeddaMedlem sedan juni 20006 032 inlägg Ok, tog ett tag men nu är det paus i hockyn. ;)
Följande kod ger resultatet:
Vinster i rad - 4 st
Oavgjorda i rad - 2 st
Förluster i rad - 3 st
Antar att det är något sånt du tänkt dig. Alltså det högsta antalet vinster i rad o.s.v?
<?php
// array för test
$arr = array('vinst', 'förlust', 'förlust', 'förlust', 'oavgjord', 'oavgjord', 'vinst', 'vinst', 'vinst', 'vinst');
// max antal
$vinst = 0;
$oavgjord = 0;
$forlust = 0;
// håll reda på sista värdet när vi loopar
$sist = '';
// intern räknare
$i = 0;
foreach($arr as $a) {
switch ($a) {
case 'vinst':
if($sist == 'vinst') {
$i++;
if($i > $vinst) {
$vinst = $i;
}
} else {
$i = 1;
$sist = 'vinst';
}
break;
case 'oavgjord':
if($sist == 'oavgjord') {
$i++;
if($i > $oavgjord) {
$oavgjord = $i;
}
} else {
$i = 1;
$sist = 'oavgjord';
}
break;
case 'förlust':
if($sist == 'förlust') {
$i++;
if($i > $forlust) {
$forlust = $i;
}
} else {
$i = 1;
$sist = 'förlust';
}
break;
}
}
echo "Vinster i rad - $vinst st<br />";
echo "Oavgjorda i rad - $oavgjord st<br />";
echo "Förluster i rad - $forlust st<br />";
?>
Finns säkert enklare sätt att göra det på, men det är vad jag kommer på just nu.