Я пытаюсь изменить многомерный массив внутри цикла foreach, используя функцию.Однако, когда я проверяю свои результаты с помощью print_r (), результат не тот, который я хочу, и я тоже не получаю никаких ошибок.
foreach ($layoutData as $key => $data) {
$method = $data[ 'acf_fc_layout' ];
if (method_exists($this, $method)) {
$data = $this->$method($data);
}
$this->parseOptions($data);
}
Примечание: foreach находится внутри функции, называемой макетами().Я подумал, что это не имеет значения, поэтому я пропустил это.
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 () результат:
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'
)
Но я хочу достичь:
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'
)