Variabele per positie uitlezen en optellen
Na het kijken op dit forum geen oplossing gevonden :-(
Weet één van jullie de oplossing?
Ik heb variabele $totaal met inhoud: "003201201"
Nu wil ik dat de inhoud van elke positie bij elkaar opgeteld wordt dus:
uitkomst van: 0+0+3+2+0+1+2+0+1
=9
Hulp wordt zeer gewaardeerd.
Alvast bedankt!
is het aantal posities variabel of altijd 9? In dat geval is het makkelijk op te lossen met substr+substr+etc
Anyway, de manier van wouter zal wel wat sneller zijn maar de functie waarnaar je opzoek was is waarschijnlijk str_split geweest en niet explode.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
# De 'lijst' met getallen.
$totaal = '003201201';
# De som van alle getallen in de 'lijst' berekenen.
$sum = (ctype_digit($totaal)) ? array_sum(str_split($totaal)) : 'Ongeldige Lijst' ;
?>
# De 'lijst' met getallen.
$totaal = '003201201';
# De som van alle getallen in de 'lijst' berekenen.
$sum = (ctype_digit($totaal)) ? array_sum(str_split($totaal)) : 'Ongeldige Lijst' ;
?>
Beide oplossingen doen wat ik wil.
@Mark
Is er ook nog een manier om in de foutopsporing van jouw methode te weten te komen welk karakter ongeldig is?
Groet,
Margreet
Niet echt, je zou met ctype_alpha() kunnen kijken of er letters instaan maar ik zou eigenlijk niet weten waarom je dat zou willen. Normaal controleer je wat je wilt hebben en niet wat er fout is. Of is er een andere reden waarom je wilt weten wat er fout is?
Margreet, bedankt. In mijn geval zou je een foutmelding kunnen plaatsen door regel 13 te vervangen met:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
) {
if (!is_numeric($str[$i])) {
// het is geen cijfer
echo $str[$i].' is een ongeldig karakter.';
}
}
?>
) {
if (!is_numeric($str[$i])) {
// het is geen cijfer
echo $str[$i].' is een ongeldig karakter.';
}
}
?>