I'm trying to modify a multidimensional array inside a foreach loop using a function. However when I check my results with a print_r() the outcome is not what I want it to be and I'm not receiving any errors either.
foreach ($layoutData as $key => $data) {
$method = $data[ 'acf_fc_layout' ];
if (method_exists($this, $method)) {
$data = $this->$method($data);
}
$this->parseOptions($data);
}
Note: The foreach is inside a function called layouts(). I thought this was irrelevant so I left that out.
public function parseOptions($data) {
if (isset($data[ 'padded' ])) {
if ($data[ 'padded' ] == 'true') {
$data[ 'options' ][ 'padded' ] = true;
} else {
$data[ 'options' ][ 'padded' ] = false;
}
unset($data[ 'padded' ]);
}
if (isset($data[ 'background-color' ])) {
$data[ 'options' ][ 'background-color' ] = $data[ 'background-color' ];
if ($data[ 'options' ][ 'background-color' ] == 'white') {
$data[ 'options' ][ 'background-color' ] = false;
}
unset($data[ 'background-color' ]);
}
return $data;
}
print_r() result:
Array
(
[view] => signup
[data] => Array
(
[acf_fc_layout] => signup
[title] => Schrijf je snel in
[text] => Kickstarten begint met aanmelden. Doe het snel, dan maak je kans op een Samsung Galaxy S9.
)
[padded] => 'true'
[background-color] => 'dark-grey'
)
But what I want to achieve is:
Array
(
[view] => signup
[data] => Array
(
[acf_fc_layout] => signup
[title] => Schrijf je snel in
[text] => Kickstarten begint met aanmelden. Doe het snel, dan maak je kans op een Samsung Galaxy S9.
)
[options] => Array
(
[padded] => 'true'
[background-color] => 'dark-grey'
)