Buenas, estoy intentando realizar un pequeño código donde pueda crear un array multidimensionales aparir de 2 arrays simples

Código :

// id o clave   
$ids = array(11,22,33,44,55);
// valores a intro
$valores = array('valor 1','valor 2','valor 3','valor 4','valor 5','valor 6','valor 7','valor 8' );



// loop para crear un array multidimensionales
for ($i = 0; $i < count($ids); $i++)
{
   $matrix[$ids[$i]][$i] =$valores[$i];

   print_r($matrix);
}


lo que estoy buscando guardar los datos de una consulta mysql en un array para después pasarlos a la plantilla smarty

el problema pasa cuando tengo que filtrar la información por las id de forma dinámica

por ejemplo
vamos a imaginar que tengo 7 valores
id11 valor1
id22 valor2
id22 valor3
id22 valor4
id33 valor5
id44 valor6
id55 valor7

tengo que mostrar todos los valores que pertenezcan a cada id, como pueden ver en el ejemplo el id2 tiene 3 valores y el resto solo 1

los registros son creados en la base da datos automáticamente, se crea un id y sus valores en diferentes tablas