Foreach 2 array meegeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rein de Vries

Rein de Vries

02/04/2009 10:31:00
Quote Anchor link
Hey,

is he mogelijk om in een foreach loop 2 waardes mee tegeven

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP
 foreach($arr1, $arr2 as $value1, $value2){
$echo $value1;
$echo $value2;
}

?>


of kan dit niet?

ik heb namelijk een multidimensionale array met 2 keys die ik wil uitlaten lopen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP
$kernen
= array(
           "kernen"=>array("naam", "naam2"),
            "status"=> array(1, 2)
        );

?>
Gewijzigd op 01/01/1970 01:00:00 door Rein de Vries
 
PHP hulp

PHP hulp

16/04/2024 23:22:41
 
Flip --

Flip --

03/04/2009 04:45:00
Quote Anchor link
Dit zou ik als antwoord geven als ik naar je vraagstelling kijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
  foreach ($kernen as $key1 => $value1) {
    foreach ($value1 as $key2 => $value2) {
      
    }
  }

?>


En dit als ik naar je array kijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
  for ($i=0;count($kernen['kernen']);$i++) {
    $kern = $kernen['kernen'][$i];
    $status = $kernen['status'][$i];
  }

?>
 
Johan

johan

03/04/2009 07:55:00
Quote Anchor link
In dient de array in de array altijd 2 key bevat is dit beter denk ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
  foreach ($kernen as $key1 => $value1) {
      echo $value1[0];  
      echo "</br>";  
      echo $value1[1];
  }

?>
Gewijzigd op 01/01/1970 01:00:00 door johan
 
Dennis Mertens

Dennis Mertens

03/04/2009 10:26:00
Quote Anchor link
Hoe ziet je array eruit, en wat wil je bereiken=
 
Jelmer -

Jelmer -

03/04/2009 11:07:00
Quote Anchor link
Flip komt het dichtst in de buurt (maar z'n conditie in de for-lus is niet helemaal lekker)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

foreach($kernen['kernen'] as $index => $naam)
{

    echo $naam;
    echo $kernen['status'][$index];
}


?>
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
Mar cel

Mar cel

03/04/2009 12:00:00
Quote Anchor link
Ha hier heb ik me tijdje geleden ook mee bezig gehouden. Op deze manier controleer ik nu altijd m'n formulier input:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>');
        }
    }
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Mar cel
 
Flip --

Flip --

03/04/2009 13:58:00
Quote Anchor link
@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.
 
Jelmer -

Jelmer -

03/04/2009 15:26:00
Quote Anchor link
@Flip: in dit geval zal het goed gaan :)

Jouw scriptje miste nog de vergelijking in de voorwaarde:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
for ($i=0; count($kernen['kernen']); $i++)

moest zijn
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
for ($i=0; $i < count($kernen['kernen']); $i++)


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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.