webForumDet fria alternativet
Logga in / Bli medlem

Räkna i array

PHP

3 svar · 354 visningar · startad av Uffe82

Medlem sedan feb. 200711 inlägg
Trådstart#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!!

Medlem sedan juni 20006 031 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.

Medlem sedan feb. 200711 inlägg
#3

Hur

Hur skall jag loopa igenom då?

Medlem sedan juni 20006 031 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.

265 ms totalt · 4 externa anrop · v20260731065814-full.7d626504
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)