Versio

Foreach 2 array meegeven

Overzicht Reageren

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

24/05/2012 16:41:49
Gesponsorde koppelingen:
 
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 rrrr

Jelmer rrrr

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 rrrr
 
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 rrrr

Jelmer rrrr

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

Get Adobe Flash player