I have one var_dump
before and one after to show.
Why (and when) is $data->offers
modified as foreach just copy the value in the variable ?
I have this code :
<?php
data = new stdClass();
$data->offers = $this->getOffreChildren(27);
var_dump($data->offers);
foreach ($data->offers as $offre) {
$offre->contracts = $this->getOffreChildren($offre->id);
foreach ($offre->contracts as $contract) {
$contract->count = 0;
foreach ($adhesions as $adhesion) {
if ($adhesion->id_type_contrat == $contract->id)
$contract->count = $adhesion->nombre;
}
}
}
var_dump($data->offers); die;
First var dump
:
array (size=7)
0 =>
object(stdClass)[260]
public 'nom' => string 'lorem' (length=6)
public 'id' => string '1' (length=1)
public 'code' => string 'lorem' (length=5)
1 =>
object(stdClass)[261]
public 'nom' => string 'lorem.... ' (length=19)
public 'id' => string '2' (length=1)
public 'code' => string 'lorem..... lorem' (length=13)
2 =>
object(stdClass)[262]
public 'nom' => string 'lorem...lorem' (length=17)
public 'id' => string '48' (length=2)
public 'code' => string 'lorem...lorem' (length=16)
....
The second var_dump
:
array (size=7)
0 =>
object(stdClass)[260]
public 'nom' => string 'lorem' (length=6)
public 'id' => string '1' (length=1)
public 'code' => string 'lorem' (length=5)
public 'contracts' =>
array (size=14)
0 =>
object(stdClass)[258]
...
1 =>
object(stdClass)[257]
...
2 =>
object(stdClass)[256]
...
1 =>
object(stdClass)[261]
public 'nom' => string 'lorem.... lorem' (length=19)
public 'id' => string '2' (length=1)
public 'code' => string 'lorem..... lorem' (length=13)
public 'contracts' =>
array (size=4)
0 =>
object(stdClass)[270]
...
1 =>
object(stdClass)[269]
...
Foreach
walks your array and in your case addscontracts
property to it with the commandit is not clear where
$adhesions
comes from but withyou add another property to the already added
contracts
property.