1- Ordena la consulta por id y value "ORDER BY id, value"
2- Crea un sólo array, con índice de acuerdo a object_sid
Código PHP:
Ver originalwhile(/* lectura de cada registro de la consulta */) {
// Estoy suponiendo que las variables son los campos de tu tabla
// Primero verificas que exista el índice en el arreglo
if( !isset($registros[$object_sid])) { // No existe, la creas en blanco
$registros[$object_sid] = array('nombre' => '', 'email' => ''); }
// Ahora sólo vas agregando nombre o correo, segun el caso
if($id == 'referencia_comp:nombre_ref') {
$registros[$object_sid]['nombre'] = $value;
} else {
$registros[$object_sid]['email'] = $value;
}
}
Con eso ya te quedaría el array correcto, pero en vez de ID 0, 1, 2 y 3, serán los números correspondientes de object_sid
Supongo que algo tendrás planeado hacer con los registro que tienen value vacío.