How to traverse an array within another indexed array

0

I try to save records of indexed buildings in my array since I can register 1 or more buildings in a single form, for each building I want to store name_building, number_calls, and prefix_calls. My code is as follows

 $edificios = array();
    for ($i = 0; $i < count($request->nombreedificio) ; $i++) {
    $edificio = array();
    $edificio["nombre_edificio"] = $request->nombreedificio[$i];
    $edificio["numero_aulas"] = $request->numeroaulas[$i];
    $edificio["prefijo_aulas"] = $request->prefijoaulas[$i];
    $edificios[$i] = $edificio;
    }
    dd($edificios);

When executing a dd ($ buildings); I can observe the following when sending data of two buildings

  array:2 [▼
  0 => array:3 [▼
    "nombre_edificio" => "edificio1"
    "numero_aulas" => "10"
    "prefijo_aulas" => "a"
  ]
  1 => array:3 [▼
    "nombre_edificio" => "edificio2"
    "numero_aulas" => "20"
    "prefijo_aulas" => "b"
  ]
]

My question is how can I go through this array, either with a for or a foreach, so that I can iterate the data of each building in this way and save them (SOMETHING TO YES)

for ($c = 0; $c < count($edificios) ; $i++)   {

edificio->nombre_edificio[c]

edificio->numero_aulas[c]

edificio->prefijo_aulas[c]
}
    
asked by Jcastillovnz 27.10.2017 в 22:46
source

2 answers

1

Walk with for :

for ($c = 0; $c < count($edificios) ; $i++)   {

   edificios[$c]['nombre_edificio'];

   edificios[$c]['numero_aulas'];

   edificios[$c]['prefijo_aulas'];
}

Go through with a foreach

foreach ($edificios as $edificio) {

   edificio['nombre_edificio'];

   edificio['numero_aulas'];

   edificio['prefijo_aulas'];
}
    
answered by 27.10.2017 / 23:30
source
0

1. The array

I've tried to rebuild your building array.

If the array is like this:

$arrEdificios= array(
    array( 
            "nombre_edificio" => "edificio1",
            "numero_aulas" => "10",
            "prefijo_aulas" => "a"
          ),

     array (
             "nombre_edificio" => "edificio2",
             "numero_aulas" => "20",
             "prefijo_aulas" => "b"
            )
) ;

print_r($arrEdificios);

Let's see the output of print_r:

Array
(
    [0] => Array
        (
            [nombre_edificio] => edificio1
            [numero_aulas] => 10
            [prefijo_aulas] => a
        )

    [1] => Array
        (
            [nombre_edificio] => edificio2
            [numero_aulas] => 20
            [prefijo_aulas] => b
        )

)

2. Reading the Array

Several ways of reading are possible.

A. Storing in variables

foreach ($arrEdificios as $k=>$v)
{

    $strEdificio=$v["nombre_edificio"];
    $intNumAulas=$v["numero_aulas"];
    $strPrefijoAulas=$v["prefijo_aulas"];

    echo "Edificio: ".$strEdificio."\n";
    echo "num aulas: ".$intNumAulas."\n";
    echo "prefijo: ".$strPrefijoAulas."\n\n";

}

Exit:

Edificio: edificio1
num aulas: 10
prefijo: a

Edificio: edificio2
num aulas: 20
prefijo: b

B. Dynamic reading in the loop without storing variables

This type of readings is practical when you want to build tables based on the array data, for example.

foreach ($arrEdificios as $k=>$v)
{
    if (is_array ($v))
    {
        foreach ($v as $kk=>$vv)
        {
            echo "Llave: ".$kk. " Valor: ".$vv."\n";
        }  
            echo "\n";


    }else{
        echo "Llave: ".$k. " Valor: ".$v."\n";
    }
}

Exit:

Llave: nombre_edificio Valor: edificio1
Llave: numero_aulas Valor: 10
Llave: prefijo_aulas Valor: a

Llave: nombre_edificio Valor: edificio2
Llave: numero_aulas Valor: 20
Llave: prefijo_aulas Valor: b

Demonstration

VIEW DEMO

You can try and / or modify all the previous code online.

    
answered by 28.10.2017 в 00:13