Я пытаюсь построить ассоциативный многомерный массив следующим образом:
array(
[0] => Array(
Parent => Mr Smith,
Children => array(
Firstmane => Bob,
Surname => Smith,
Age => 16,
)
)
[1] => Array(
Parent => Mr Jones,
Children => array(
Firstmane => Davey,
Surname => Jones,
Age => 15,
)
)
)
Мой текущий код выглядит следующим образом:
foreach($Parents as $parent) {
$opdata[] = ['Children'=>array(),'Parent'=>$name];
foreach($children as $child) {
$opdata['Children'][] = [
'Firstmane'=>$code,
'Surname'=>$cost,
'Age'=>$age,
];
}
}
Однако при этом «Дети» помещаются в новый массив, а не в дочерний массив каждого родителя. Так:
array(
[0] => Array(
Parent => Mr Smith,
Children => array()
)
[1] => Array(
Parent => Mr Jones,
Children => array()
)
Children => array(
[0] => array(
Firstmane => Bob,
Surname => Smith,
Age => 16,
[1] => array(
Firstmane => Davey,
Surname => Jones,
Age => 15,
)
)
)
Я не могу понять, как добавить дочерние массивы в правильный вложенный массив с правильным родительским элементом.
🤔 А знаете ли вы, что...
PHP поддерживает расширения для работы с множеством сторонних сервисов и API.
Сначала создайте, затем назначьте, а не наоборот. Итак, в вашем случае код может выглядеть так:
foreach ($Parents as $parent) {
$person = ['Parent' => $name];
foreach ($children as $child) {
$person['Children'][] = ['Firstmane' => $code,
'Surname' => $cost,
'Age' => $age];
}
$opdata[] = $person;
}
Я говорю: «можно было бы посмотреть», потому что непонятно откуда берутся такие переменные типа $name
, $code
, $cost
и $age
. Я думаю, это должно происходить из переменных $parent
и $child
, но это не так.
Я также постарался сделать код более читабельным, используя отступы. Как вы будете делать отступы, зависит от вас, но объединение всего вместе не улучшит читабельность.