webForumDet fria alternativet

Räkna i array

3 svar · 352 visningar · startad av Uffe82

Uffe82Medlem sedan feb. 200711 inlägg
#1

Ä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
#2

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
#3

Hur

Hur skall jag loopa igenom då?

PeddaMedlem sedan juni 20006 032 inlägg
#4

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.

128 ms totalt · 3 externa anrop · v20260731065814-full.16f3d68c
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)