Combining 3 or more arrays in php
I would suggest the following:

function combine_keys_with_arrays($keys, $arrays) {
    $results = array();

    foreach ($arrays as $subKey =&gt; $arr)
    {
       foreach ($keys as $index =&gt; $key)
       {
           $results[$key][$subKey] = $arr[$index];    
       }
    }

    return $results;
}

$keys    = array('u1', 'u2', 'u3');
$names   = array('Bob', 'Fred', 'Joe');
$emails  = array('bob@mail.com', 'fred@mail.com', 'joe@mail.com');
$ids     = array(1,2,3);

combine_keys_with_arrays($keys, array('name'  =&gt; $names,
                                      'email' =&gt; $emails,
                                      'id'    =&gt; $ids));


The second parameter to the function can be built as you need it.  It avoids array shifting and variable arguments, but I think it should be pretty fast.