Jamie Moffat Jamie Moffat - 1 year ago 142
PHP Question

Merge array values, alternating

I'm trying to merge arrays but would like to alternate the order.

$combined = array_merge($vars,$mods);

gives me: one,two,three,1,2,3...

I'd like: one,1,two,2,three,3...

is there a way to do this?

Answer Source

You can use a for loop and refer to the index of each of the arrays you're combining.

$l = count($vars);
for ($i=0; $i < $l; $i++) {
    $combined[] = $vars[$i];
    $combined[] = $mods[$i];

In each iteration of the loop, you'll append one item from each of the original arrays. This will achieve the alternating effect.

As Steve pointed out, this can be done more simply using foreach:

foreach ($vars as $i => $value) {
    $combined[] = $value;
    $combined[] = $mods[$i];
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download