I have problem to add array into array. I cannot resolve it.
I have this array $A:
Array
(
[1001] => Array
(
[0] => Array
(
[name] => 'Joe'
[surname] => 'Doe'
[age] => 20
[height] => 180
[weight] => 80
)
)
)
And I have this array $B:
Array
(
[height] => 200
[weight] => 100
)
How to create new array to get this result:
Array
(
[1001] => Array
(
[0] => Array
(
[name] => 'Joe'
[surname] => 'Doe'
[height] => 180
[weight] => 80
[age] => 20
)
)
[1001] => Array
(
[1] => Array
(
[name] => 'Joe2'
[surname] => 'Doe2'
[height] => 200
[weight] => 100
[age] => 22
)
)
)
I use this, but the result is not correct:
$array[1001][] = [
'name' => 'Joe2',
'surname'=> 'Doe2',
$B,
'age' => 22
];
Thank you for answer.
You can use the operator +
to merge your arrays:
$array = array(
1001 => array(
array(
'name' => 'Joe',
'surname' => 'Doe',
'height' => 180,
'weight' => 80,
'age' => 20
)
),
);
$B = array('height' => 200, 'weight' => 100);
$array[1001][] = [
'name' => 'Joe2',
'surname'=> 'Doe2',
'age' => 22
] + $B;
print_r($array);
Will outputs:
Array
(
[1001] => Array
(
[0] => Array
(
[name] => Joe
[surname] => Doe
[height] => 180
[weight] => 80
[age] => 20
)
[1] => Array
(
[name] => Joe2
[surname] => Doe2
[age] => 22
[height] => 200
[weight] => 100
)
)
)
Try array_merge():
$array[1001][] = array_merge(['name'=>'Joe2','surname'=> 'Doe2','age' => 22],$B);
OR
$array[1001][] = ['name'=>'Joe2','surname'=> 'Doe2','age' => 22] + $B;
$innerArray = array();
$item1Array = array();
array_push($item1Array,"Data 1");
array_push($item1Array,"Data 2");
$item2Array = array();
array_push($item2Array,"Data 3");
array_push($item2Array,"Data 4");
array_push($innerArray, $item1Array);
array_push($innerArray, $item2Array);
$result = array();
$result["result"] = "Success";
$result["user"] = $innerArray;
Result :
{
"result" => "Success",
"user" => [
[0] =>[
[0]=>"Data 1",
[1]=>"Data 1",
],
[1] =>[
[0]=>"Data 3",
[1]=>"Data 4",
]
]
}
Hope it helps.
You can use array_merge
like this:
$array[1001][] = array_merge([
'name' => 'Joe2',
'surname'=> 'Doe2',
'age' => 22
], $B);