You can try with for or foreach loops (in case $array1 and $array2 have the same number of elements with the same indexes):
$result = array();
for($i = 0; $i < count($array1); $i++){
$result[] = $array1[$i];
$result[] = $array2[$i];
}
[] gives you a feature to not specify the index, so you can just push them one by one from each array to the result array.
There is also a more straightforward way to do it, without worrying about lost indexes and elements :
$i = 0;
foreach($array1 as $v){
$result[$i] = $v;
$i = $i+2;
}
$i = 1;
foreach($array2 as $v){
$result[$i] = $v;
$i = $i+2;
}
ksort($result);
It looks a bit cumbersome, so you can write a function to make it more elegant :
function build_array(&$array, $input, $counter){
foreach($input as $v){
$array[$counter] = $v;
$counter = $counter+2;
}
}
build_array($result, $array1, 0);
build_array($result, $array2, 1);
ksort($result);