У меня есть этот массив PHP X.
X= array(
'Parent' => array(
'title' => '123',
)
)
У меня есть этот массив php Y.
Y = array(
'Parent' => array(
'id' => '16',
'title' => 'T1',
),
'Children' => array(
(int) 0 => array(
'id' => '8',
'serial_no' => '1',
),
(int) 1 => array(
'id' => '9',
'serial_no' => '2',
),
(int) 2 => array(
'id' => '14',
'serial_no' => '6',
)
)
)
Я хочу скопировать дочерние элементы массива Y в родительский массив массива X, чтобы сформировать массив Z так, чтобы он выглядел следующим образом;
Z= array(
'Parent' => array(
'title' => '123',
)
'Children' => array(
(int) 0 => array(
'serial_no' => '1'
),
(int) 1 => array(
'serial_no' => '2'
),
(int) 2 => array(
'serial_no' => '6'
)
)
)
Обратите внимание, что пара ключ-значение id была удалена из дочернего элемента массива Y.
Я написал свой собственный код.
$Z = array();
$i=0;
foreach($Y as $temp)
{
$Z['Children'][$i] = $temp['Children'][$i];
unset($Z['Children'][$i]['id'];
$i++;
}
$Z['Parent']=$temp['Parent'];
К сожалению, существует неопределенная ошибка индекса. Как это можно сделать в php? Забудьте о моем коде, если есть лучшие подходы.
На самом деле ваш подход тоже работает, но вам нужно перебрать суб-массив:
$Z = array();
$i=0;
foreach($Y['Children'] as $temp)
{
$Z['Children'][$i] = $temp;
unset($Z['Children'][$i]['id'];
$i++;
}
или что я могу сделать:
$Z = $X;
$Z['Children'] = array();
foreach ( $Y['Children'] as $child ) {
$Z['Children'][] = array(
'serial_no' => $child['serial_no'],
);
}
Вы можете сделать как.
$Z = array();
foreach($Y['Children'] as $temp)
{
$Z['Children'][] = array('serial_no' => $temp['serial_no']);
}
$Z['Parent']=$X['Parent'];