Put two Arrays inside a foreach [closed]

0

Well, in the case I have two arrays that are received from inputs, based on hotel room rentals, in case each room needs to display Number of adults and children, I got someone's help here on the stack to increase the number of rooms, but I had to put the $ children under the adults, in this case, children for each room, but this one is making a mistake here, does anyone know if it's possible?

$adultos = array(2, 3, 2);
$criancas = array(1, 1, 3);

$i = 1;
foreach($adults as $adultos):

    echo "<strong>Quarto".$i++."</strong><br>";
    echo "Adultos:".$adultos."<br>";
    //AQUI PRECISAVA EXIBIR AS CRIANÇAS
    echo "Crianças:".$criancas."<br>";
endforeach;

I'm hitting here to do this, if anyone can give a light ...

    
asked by anonymous 19.09.2017 / 03:44

2 answers

2

If the values of $adultos and $criancas are directly related, you may want to group the values together. You can do this through the array_map function:

$adultos = array(2, 3, 2);
$criancas = array(1, 1, 3);

$quantidades = array_map(null, $adultos, $criancas);

Forming the following array :

Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 1
        )

    [1] => Array
        (
            [0] => 3
            [1] => 1
        )

    [2] => Array
        (
            [0] => 2
            [1] => 3
        )

)

To run it, just use foreach in conjunction with list :

foreach($quantidades as $i => $quantidade) {
    list($adulto, $crianca) = $quantidade;
    echo "Quarto: ", $i+1, PHP_EOL;
    echo "Adultos: ", $adulto, PHP_EOL;
    echo "Crianças: ", $crianca, PHP_EOL;
}

Generating result:

Quarto: 1
Adultos: 2
Crianças: 1

Quarto: 2
Adultos: 3
Crianças: 1

Quarto: 3
Adultos: 2
Crianças: 3

What is expected.

  

See working at Ideone .

    
19.09.2017 / 05:31
0

The code is commented on to understand.

$adultos = array(2, 3, 2);
$criancas = array(1, 1, 3);

$i = 0; // Altere o valor da variável $i para 0
foreach($adultos as $adultos): // Corrija o nome da variável $adultos pois está $adults
    echo "<strong>Quarto ".($i+1)."</strong>\n"; // ($i+1) soma o valor de $i com mais 1, apenas para exibição.
    echo "Adultos:".$adultos."\n";
    //AQUI PRECISAVA EXIBIR AS CRIANÇAS
    // O valor da variável $i vai ser a chave para retornar a quantidade de crianças
    echo "Crianças:".$criancas[$i]."\n\n"; // Exibe a quantidade de crianças
    $i++; // Incrementa
endforeach;

You can see it working at ideone .

    
19.09.2017 / 04:38