Archief - array controleren op cijfers tussen 50 en 90

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

superfries0

Legacy Member
ey mannen,

ik moet een array controleren of de cijfers die erin staan wel de waarde 50 tot en met 90 hebben. heb al verschillende dingen geprobeerd maar het lukt me niet. Zou iemand mij daarmee kunnen helpen?
alvorens bedankt:niceone:

Tyfius

Legacy Member
  1. Beter opletten in de les
  2. Uwe cursus effectief open doen
  3. Don't post homework questions
  4. Voor ene keer dan (huiswerk hoort hier nog steeds niet thuis):
PHP:
for ($i = 0; $i < count($array); $i++) {
  if (($array[$i] < 50) || ($array[$i] > 90)) {
    // Do something when not OK.
  }
}
Als dit zelfs al te moeilijk is zou ik mij toch is afvragen of je wel de juiste richting hebt gekozen...

Mocht het, om de een of andere zotte reden toch geen huiswerk zijn (daar jouw profiel ASO student vermeld) dan zou ik toch eens een deftig boek kopen en niet zomaar aan iets beginnen wat je niet kan.

Jerre Muesli

Legacy Member
Tyfus, 'de waarden 50 tot en met 90' is niet 'de waarden tussen 50 en 90'.
Ik denk dat ge u mislezen hebt. (anders zou hij inderdaad aan iets nieuws mogen beginnen :))

Wat ik zou doen is gewoon een 2de array maken (met een loopje hè) met waarden50 tem 90. Dan kan je gewoon zeggen:

array_diff($array50tem90,$arrayTeControleren);

De waarden die ontbreken in $arrayTeControleren geeft hij als output. Het maakt niet uit op welke plaats de waarden staat of welke keys deze hebben dus daar moet je allemaal niet naar kijken. Geeft hij een lege array terug dan bevat deze alle waarden tussen 50 en 90.

Er bestaan misschien betere manieren maar t'is al lang geleden :)

Cycloon

Legacy Member
Allemaal zo moeilijk doen en zo weinig efficiënt denken terwijl dit oefeningetjes zijn die studenten in hun eerste jaar programmeren krijgen aangeleerd.

Code:
function isArrayCorrect(&$tabel) {
	$correct=true;
	$i=0;
	while($i<count($tabel) && $correct) {
		$correct=($tabel[$i]>=50 && $tabel[$i]<=90);
		$i++;
	}
	return $correct;
}

Jerre Muesli

Legacy Member
Als ik een array heb met waarden 65 en 80 dan heb ik volgens jou een correcte array :D
En waar kan jij zien of je array ook ALLE waarden van 50 TEM 90 bevat ?
Tot zover je efficiënt denken dan ..

En moeilijk doen ? Ik maak een 2de array en roep een functie op. Veel simpeler kan niet

Cycloon

Legacy Member
x4xk3 zei:
Als ik een array heb met waarden 65 en 80 dan heb ik volgens jou een correcte array :D
En waar kan jij zien of je array ook ALLE waarden van 50 TEM 90 bevat ?
Tot zover je efficiënt denken dan ..

En moeilijk doen ? Ik maak een 2de array en roep een functie op. Veel simpeler kan niet

Oh ok, de vraagstelling was nu niet echt redelijk goed. Maar jouw manier is uitermate inefficiënt. Om dan toch een goede oplossing te geven:

Code:
function isArrayCorrect(&$tabel) {
	$correct=false;
	$aantal=count($tabel);
	if($aantal==90-50+1) {
		sort($tabel);
		$i=1;
		while($i<$aantal && $tabel[$i-1]<$tabel[$i])
			$i++;
		$correct= $i==$aantal && $tabel[0]==50;
	}
	return $correct;
}

Jerre Muesli

Legacy Member
Dus als ik een array van 41 lang doorstuur die van 10 tem 50 gaan dan is deze ook correct volgens uw functie.
Daarenboven als ik een array doorstuur met de waarden 50 tem 90 maar niet geordend is deze niet correct.
Ik wil niet in de clinch gaan ofzo maar je oplossing klopt gewoon niet.

Cycloon

Legacy Member
x4xk3 zei:
Dus als ik een array van 41 lang doorstuur die van 10 tem 50 gaan dan is deze ook correct volgens uw functie.

Ok juist, ik had ook niet getest, anders had ik dit er zo uitgevist. Ik heb de code dan ook maar aangepast.

x4xk3 zei:
Daarenboven als ik een array doorstuur met de waarden 50 tem 90 maar niet geordend is deze niet correct.
Ik wil niet in de clinch gaan ofzo maar je oplossing klopt gewoon niet.

Onzin :)

Tyfius

Legacy Member
x4xk3 zei:
Tyfus, 'de waarden 50 tot en met 90' is niet 'de waarden tussen 50 en 90'.
Ik denk dat ge u mislezen hebt. (anders zou hij inderdaad aan iets nieuws mogen beginnen :))

Wat ik zou doen is gewoon een 2de array maken (met een loopje hè) met waarden50 tem 90. Dan kan je gewoon zeggen:

array_diff($array50tem90,$arrayTeControleren);

De waarden die ontbreken in $arrayTeControleren geeft hij als output. Het maakt niet uit op welke plaats de waarden staat of welke keys deze hebben dus daar moet je allemaal niet naar kijken. Geeft hij een lege array terug dan bevat deze alle waarden tussen 50 en 90.

Er bestaan misschien betere manieren maar t'is al lang geleden :)
Ik was inderdaad te rap precies. Maar hij had diezelfde vraag hier gisteren ook al is gepost, en toen is zijn thread vakkundig gesloten.

dJeez

Legacy Member
Strike 2.

Is begrijpend lezen te moeilijk of zo? Bij een volgende keer krijg je wat tijd om je te bezinnen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan