I am trying to merge two or more multidimensional array based on same ID.
All the arrays are populated from different database table queries.
My Goal: Trying to merge all the arrays together and fetch the data to view page table.
I'm using codeigniter frame work for my project.
$array1
is from the 'members' table.
$array2
, $array3
and $array4
are from the 'registration' table with a where condition.
My arrays:
$array1 = [
1 => (object) [
"mem_tbl_id" => 1,
"m_name_e" => "Titus C.",
"member_id" => "KZI37M3025",
"gender" => "Male",
"m_number" => 9489455057,
"familyid" => "KZI54F2256"
],
2 => (object) [
"mem_tbl_id" => 2,
"m_name_e" => "Baby Helen",
"member_id" => "KZI45M6402",
"gender" => "Female",
"m_number" => null,
"familyid" => "KZI54F2256"
],
3 => (object) [
"mem_tbl_id" => 3,
"m_name_e" => "Satheesh Premananth T.",
"member_id" => "KZI69M3438",
"gender" => "Male",
"m_number" => null,
"familyid" => "KZI69F5619"
]
];
$array2 = [
1 => (object) [
"mem_tbl_id" => 1,
"do_birth" => "1937-09-18"
],
2 => (object) [
"mem_tbl_id" => 2,
"do_birth" => "1945-02-06"
],
3 => (object) [
"mem_tbl_id" => 3,
"do_birth" => "1968-04-12"
]
];
$array3 = [
3 => (object) [
"mem_tbl_id" => 3,
"do_baptism" => "1969-04-13"
]
];
$array4 = [
1 => (object) [
"mem_tbl_id" => 1,
"do_confirm" => "1954-04-07"
],
3 => (object) [
"mem_tbl_id" => 3,
"do_confirm" => "1990-04-29"
]
];
Desired result:
array (
1 =>
(object) array(
'mem_tbl_id' => 1,
'm_name_e' => 'Titus C.',
'member_id' => 'KZI37M3025',
'gender' => 'Male',
'm_number' => 9489455057,
'familyid' => 'KZI54F2256',
'do_birth' => '1937-09-18',
'do_confirm' => '1954-04-07',
),
2 =>
(object) array(
'mem_tbl_id' => 2,
'm_name_e' => 'Baby Helen',
'member_id' => 'KZI45M6402',
'gender' => 'Female',
'm_number' => null,
'familyid' => 'KZI54F2256',
'do_birth' => '1945-02-06',
),
3 =>
(object) array(
'mem_tbl_id' => 3,
'm_name_e' => 'Satheesh Premananth T.',
'member_id' => 'KZI69M3438',
'gender' => 'Male',
'm_number' => null,
'familyid' => 'KZI69F5619',
'do_birth' => '1968-04-12',
'do_baptism' => '1969-04-13',
'do_confirm' => '1990-04-29',
),
)
Use array_merge_recursive();
$marger_array = array_merge_recursive($Array1, $Array2, $Array3, $Array4);
var_dump($marger_array);
Output: (Demo)
array(9) {
[0]=>
object(stdClass)#1 (6) {
["mem_tbl_id"]=>
int(1)
["m_name_e"]=>
string(8) "Titus C."
["member_id"]=>
string(10) "KZI37M3025"
["gender"]=>
string(4) "Male"
["m_number"]=>
int(9489455057)
["familyid"]=>
string(10) "KZI54F2256"
}
[1]=>
object(stdClass)#2 (6) {
["mem_tbl_id"]=>
int(2)
["m_name_e"]=>
string(10) "Baby Helen"
["member_id"]=>
string(10) "KZI45M6402"
["gender"]=>
string(6) "Female"
["m_number"]=>
NULL
["familyid"]=>
string(10) "KZI54F2256"
}
[2]=>
object(stdClass)#3 (6) {
["mem_tbl_id"]=>
int(3)
["m_name_e"]=>
string(22) "Satheesh Premananth T."
["member_id"]=>
string(10) "KZI69M3438"
["gender"]=>
string(4) "Male"
["m_number"]=>
NULL
["familyid"]=>
string(10) "KZI69F5619"
}
[3]=>
object(stdClass)#4 (2) {
["mem_tbl_id"]=>
int(1)
["do_birth"]=>
string(10) "1937-09-18"
}
[4]=>
object(stdClass)#5 (2) {
["mem_tbl_id"]=>
int(2)
["do_birth"]=>
string(10) "1945-02-06"
}
[5]=>
object(stdClass)#6 (2) {
["mem_tbl_id"]=>
int(3)
["do_birth"]=>
string(10) "1968-04-12"
}
[6]=>
object(stdClass)#7 (2) {
["mem_tbl_id"]=>
int(3)
["do_baptism"]=>
string(10) "1969-04-13"
}
[7]=>
object(stdClass)#8 (2) {
["mem_tbl_id"]=>
int(1)
["do_confirm"]=>
string(10) "1954-04-07"
}
[8]=>
object(stdClass)#9 (2) {
["mem_tbl_id"]=>
int(3)
["do_confirm"]=>
string(10) "1990-04-29"
}
}