Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] Value van arrays optellen totdat de value veranderd

Pagina: 1
Acties:

  • MyKey
  • Registratie: Augustus 2012
  • Laatst online: 19-11 09:02
Hey,

Ik zit met een issue, ik kom er op dit moment even niet uit.

Ik heb oa. de volgende array()
Array
(
[instance_id] => 1
[active] => 1
[opgelost] => Ja
)
Array
(
[instance_id] => 2
[active] => 1
[opgelost] => Ja
)

Array
(
[instance_id] => 3
[active] => 1
[opgelost] => Nee
)
Array
(
[instance_id] => 4
[active] => 1
[opgelost] => Ja
)
Array
(
[instance_id] => 5
[active] => 1
[opgelost] => Ja
)
Array
(
[instance_id] => 6
[active] => 1
[opgelost] => Ja
)
Array
(
[instance_id] => 7
[active] => 1
[opgelost] => Ja
)
Nu wil ik weten hoevaak Opgelost = Ja, totdat hij veranderd in Nee..
Iemand een idee hoe ik dit het beste kan doen?
Resultaat zou ik deze dus 4 moeten zijn

Amateur racer met Trustmaster TMX + Wheelstand Pro


  • Saven
  • Registratie: December 2006
  • Laatst online: 19:06

Saven

Administrator


  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 22-11 11:07

RMX

Dit komt niet uit een database? Want dat maakt het een stuk handiger.

PHP:
1
2
3
4
5
6
7
8
$count = 0;
foreach($array as $k=>$v) {
 if($v['opgelost']=='Ja') {
  $count++;
 } else {
 break;
}
}

[ Voor 7% gewijzigd door RMX op 22-03-2013 16:31 ]


  • MyKey
  • Registratie: Augustus 2012
  • Laatst online: 19-11 09:02
Ik zal er even naar kijken
RMX schreef op vrijdag 22 maart 2013 @ 16:30:
Dit komt niet uit een database? Want dat maakt het een stuk handiger.

PHP:
1
2
3
4
5
6
7
8
$count = 0;
foreach($array as $k=>$v) {
 if($v['opgelost']=='Ja') {
  $count++;
 } else {
 break;
}
}
Het wordt wel uit de database gehaald

Amateur racer met Trustmaster TMX + Wheelstand Pro


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
MyKey schreef op vrijdag 22 maart 2013 @ 16:26:
Nu wil ik weten hoevaak Opgelost = Ja, totdat hij veranderd in Nee..
[...]
Resultaat zou ik deze dus 4 moeten zijn
:?

Ik zie:
code:
1
2
3
4
5
6
7
8
Idx Instance_Id Opgelost
0   1           Ja
1   2           Ja
2   3           Nee
3   4           Ja
4   5           Ja
5   6           Ja
6   7           Ja

(Idx = array index)
Volgens jou moeten we tellen "hoevaak Opgelost = Ja, totdat hij veranderd in Nee", dan kom ik op 2 uit als ik gewoon begin te tellen aan 't begin van de array. Ik kom alleen op 4 uit als ik vanuit de achterkant van de array terug naar 't begin tel. En als ik alle ja's optel kom ik op 6. Dus: wat is nou precies de bedoeling?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
ik gok dat hij als antwoord array(2,4) wil hebben....
lijkt me toch niet al te spannende materie... for/while-loopje en iedere keer als je een nee tegen komt je counter opslaan en resetten

Verwijderd

Is het niet handiger om bij te houden wanneer de een 'opgelost' is omgezet van 'nee' naar 'ja' en wanneer de laatste verandering plaatsvond en deze met elkaar te vergelijken ?

  • MyKey
  • Registratie: Augustus 2012
  • Laatst online: 19-11 09:02
RobIII schreef op vrijdag 22 maart 2013 @ 17:34:
[...]

:?

Ik zie:
code:
1
2
3
4
5
6
7
8
Idx Instance_Id Opgelost
0   1           Ja
1   2           Ja
2   3           Nee
3   4           Ja
4   5           Ja
5   6           Ja
6   7           Ja

(Idx = array index)
Volgens jou moeten we tellen "hoevaak Opgelost = Ja, totdat hij veranderd in Nee", dan kom ik op 2 uit als ik gewoon begin te tellen aan 't begin van de array. Ik kom alleen op 4 uit als ik vanuit de achterkant van de array terug naar 't begin tel. En als ik alle ja's optel kom ik op 6. Dus: wat is nou precies de bedoeling?
Wat ik nodig heb is de grootste reeks 'ja' achter elkaar totdat hij 'nee' wordt, dus ik jouw geval zou ik 4 moeten hebben.
Als er later in de database 5 keer achter elkaar 'ja' is wil ik dus als antwoord 5 hebben

Amateur racer met Trustmaster TMX + Wheelstand Pro


  • lordsnow
  • Registratie: Maart 2000
  • Laatst online: 23-11 21:55

lordsnow

I know nothing

Zoiets? (kleine aanpassing op hetgeen al gepost is)


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
$count = 0; 
$maxrepeats = 0;
foreach($array as $k=>$v) { 
 if($v['opgelost']=='Ja') { 
  $count++; 
 } else { 
 $maxrepeats = $count;
 $count = 0;
 } 
} 
?>

  • Tanuki
  • Registratie: Januari 2005
  • Niet online
lordsnow schreef op zaterdag 23 maart 2013 @ 19:17:
Zoiets? (kleine aanpassing op hetgeen al gepost is)


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
$count = 0; 
$maxrepeats = 0;
foreach($array as $k=>$v) { 
 if($v['opgelost']=='Ja') { 
  $count++; 
 } else { 
 $maxrepeats = $count;
 $count = 0;
 } 
} 
?>
$maxrepeats krijgt niet de juiste waarde als het laatste item in $array 'opgelost' Ja heeft.

PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:26

Creepy

Tactical Espionage Splatterer

MyKey schreef op zaterdag 23 maart 2013 @ 18:52:
[...]


Wat ik nodig heb is de grootste reeks 'ja' achter elkaar totdat hij 'nee' wordt, dus ik jouw geval zou ik 4 moeten hebben.
Als er later in de database 5 keer achter elkaar 'ja' is wil ik dus als antwoord 5 hebben
Ok, dus wat had je nu zelf al bedacht? Nog helemaal niks? Het lijkt me een kleine moeite om een tellertje op te hogen voor elke JA's die achter elkaar voorkomen en zodra je nee tegen komt dit te vergelijken met de vorige teller. Dat blijven herhalen en je hebt je antwoord lijkt me?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1