I need to merge 3 arrays that have identical keys. The result must be one array contains alternating values of the 3 arrays.
Example
$array1 = array(
array("social"=>"facebook", "id"=>"fewf", "name"=>"bbb"),
array("social"=>"facebook", "id"=>"fr43", "name"=>"ccc"),
array("social"=>"facebook", "id"=>"fewf", "name"=>"ddd")
);
$array2 = array(
array("social"=>"twitter", "id"=>"are5", "name"=>"ddd"),
array("social"=>"twitter", "id"=>"q23q", "name"=>"eee"),
array("social"=>"twitter", "id"=>"g55h", "name"=>"off"),
array("social"=>"twitter", "id"=>"r3r3", "name"=>"bgf"),
array("social"=>"twitter", "id"=>"f333", "name"=>"1qa")
);
$array3 = array(
array("social"=>"instagram", "id"=>"bv33", "name"=>"ggg"),
array("social"=>"instagram", "id"=>"nh44", "name"=>"hhh"),
array("social"=>"instagram", "id"=>"tt12", "name"=>"iii")
);
------------------------------------- RESULT ARRAY must be alternate.
$array_merged = array(
array("social"=>"facebook", "id"=>"fewf", "name"=>"bbb"),
array("social"=>"twitter", "id"=>"are5", "name"=>"ddd"),
array("social"=>"instagram", "id"=>"bv33", "name"=>"ggg"),
array("social"=>"facebook", "id"=>"fr43", "name"=>"ccc"),
array("social"=>"twitter", "id"=>"q23q", "name"=>"eee"),
array("social"=>"instagram", "id"=>"nh44", "name"=>"hhh"),
array("social"=>"facebook", "id"=>"fewf", "name"=>"ddd"),
array("social"=>"twitter", "id"=>"g55h", "name"=>"off"),
array("social"=>"instagram", "id"=>"tt12", "name"=>"iii"),
array("social"=>"twitter", "id"=>"r3r3", "name"=>"bgf"),
array("social"=>"twitter", "id"=>"f333", "name"=>"1qa")
);
How could achieve this? Having the final array adding each array in a alternate way?
--------------------- UPDATE
I have tried doing the following:
$new = array();
for ($i=0; $i < $array2; $i++) {
$new[] = $array1[$i];
$new[] = $array2[$i];
$new[] = $array3[$i];
}
However, the result gives me empty arrays when the index of the other finishes.
I've been playing around and have come up with a flexible solution that will work for as many arrays as you want along with varying amounts of items:
If you have any extra arrays just add them to the
$groupedArrays
array and they'll be handled.Hope this helps!