Foreach 2 array meegeven
Hey,
is he mogelijk om in een foreach loop 2 waardes mee tegeven
of kan dit niet?
ik heb namelijk een multidimensionale array met 2 keys die ik wil uitlaten lopen.
is he mogelijk om in een foreach loop 2 waardes mee tegeven
of kan dit niet?
ik heb namelijk een multidimensionale array met 2 keys die ik wil uitlaten lopen.
Code (php)
Gewijzigd op 01/01/1970 01:00:00 door Rein de Vries
Gesponsorde koppelingen:
Dit zou ik als antwoord geven als ik naar je vraagstelling kijk:
En dit als ik naar je array kijk:
Code (php)
En dit als ik naar je array kijk:
In dient de array in de array altijd 2 key bevat is dit beter denk ik
Code (php)
Gewijzigd op 01/01/1970 01:00:00 door johan
Hoe ziet je array eruit, en wat wil je bereiken=
Flip komt het dichtst in de buurt (maar z'n conditie in de for-lus is niet helemaal lekker)
Code (php)
Gewijzigd op 01/01/1970 01:00:00 door Jelmer rrrr
Ha hier heb ik me tijdje geleden ook mee bezig gehouden. Op deze manier controleer ik nu altijd m'n formulier input:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$verplichteVelden =
array
(
'bericht' => array(5 => 45), //minimaal 5, maximaal 45.
'naam' => array(3 => 25) //minimaal 3, maximaal 25.
);
foreach($verplichteVelden as $veldnaam => $eisen )
{
foreach( $eisen as $minimaal => $maximaal )
{
if(strlen(trim($_POST[$veldnaam])) < $minimaal)
{
array_push($error, '<li>Uw '.$veldnaam.' is te kort. Minimaal <strong>'.$minimaal.'</strong> karakters!</li>');
}
if(strlen(trim($_POST[$veldnaam])) > $maximaal)
{
array_push($error, '<li>Uw '.$veldnaam.' is te lang. Maximaal <strong>'.$maximaal.'</strong> karakters!</li>');
}
}
}
?>
$verplichteVelden =
array
(
'bericht' => array(5 => 45), //minimaal 5, maximaal 45.
'naam' => array(3 => 25) //minimaal 3, maximaal 25.
);
foreach($verplichteVelden as $veldnaam => $eisen )
{
foreach( $eisen as $minimaal => $maximaal )
{
if(strlen(trim($_POST[$veldnaam])) < $minimaal)
{
array_push($error, '<li>Uw '.$veldnaam.' is te kort. Minimaal <strong>'.$minimaal.'</strong> karakters!</li>');
}
if(strlen(trim($_POST[$veldnaam])) > $maximaal)
{
array_push($error, '<li>Uw '.$veldnaam.' is te lang. Maximaal <strong>'.$maximaal.'</strong> karakters!</li>');
}
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Mar cel
@Jelmer
werkt niet als de sub array verschillende indexes heeft
ik geloof bij een foreach wordt intern ook een count gedaan, dus zou niet veel verschil moeten geven in uitvoer tijd.
en ik heb gemerkt dat $i vaak handig is, bijv je hebt een variable die aangeeft hoe vaak de loop is gedaan.
werkt niet als de sub array verschillende indexes heeft
ik geloof bij een foreach wordt intern ook een count gedaan, dus zou niet veel verschil moeten geven in uitvoer tijd.
en ik heb gemerkt dat $i vaak handig is, bijv je hebt een variable die aangeeft hoe vaak de loop is gedaan.
@Flip: in dit geval zal het goed gaan :)
Jouw scriptje miste nog de vergelijking in de voorwaarde:
moest zijn
Intern werkt foreach trouwens niet met een count. Je kan immers ook key->value paren prima doorwandelen met een foreach-lus, ook wanneer $key eigenlijk niet voorspelbaar is zoals wel het geval is bij deze array, waar $key gewoon van 0 tot n loopt. Daarnaast kan je in een foreach-lus alles gooien wat de IteratorAggregate interface implementeert, en dat is heel leuk wanneer je veel met objecten in PHP werkt.
Jouw scriptje miste nog de vergelijking in de voorwaarde:
moest zijn
Intern werkt foreach trouwens niet met een count. Je kan immers ook key->value paren prima doorwandelen met een foreach-lus, ook wanneer $key eigenlijk niet voorspelbaar is zoals wel het geval is bij deze array, waar $key gewoon van 0 tot n loopt. Daarnaast kan je in een foreach-lus alles gooien wat de IteratorAggregate interface implementeert, en dat is heel leuk wanneer je veel met objecten in PHP werkt.



