Diferencia entre revisiones de «Usuario:ManuelRomero/proyecto/proyectoIternova/borrador»
De WikiEducator
Línea 1: | Línea 1: | ||
<source lang=php> | <source lang=php> | ||
− | + | public static function create_matrices_last( $datas, $list_services, $hour ) { | |
− | + | echo "<h2>MRM ---DEBUGANDO ...en create_matrices_fast </h2>"; | |
− | + | ||
− | echo "<h2>MRM ---DEBUGANDO ... en | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
//Inicializo el primer nivel del array | //Inicializo el primer nivel del array | ||
− | $matrix[ 'host' ] = array_values( $ | + | $matrix[ 'host' ] = array_values( $datas )[ 0 ]->host_id; |
$matrix[ 'date' ] = []; //Será un array indexado de las diferentes fechas | $matrix[ 'date' ] = []; //Será un array indexado de las diferentes fechas | ||
$matrix[ 'services' ] = []; //Array asociativo con cada servicio cada uno tendrá un arrau con los índices | $matrix[ 'services' ] = []; //Array asociativo con cada servicio cada uno tendrá un arrau con los índices | ||
+ | // //Ahora recorremos para cada documento (host - día) | ||
+ | //primero inicializamos las fechas | ||
+ | $min = "00"; | ||
+ | //Nos quedamos con los dos array si los ubiera si no data2 tendrá un false | ||
+ | reset( $datas ); | ||
+ | Logs_Controller::vardump( $hour ); | ||
+ | $data1 = current( $datas ); | ||
+ | $data2 = next( $datas ); | ||
+ | Logs_Controller::vardump( $data1 ); | ||
+ | Logs_Controller::vardump( $data2 ); | ||
+ | $fecha = substr( $data1->timestamp, 0, 10 ) . " $hour:00:00"; | ||
+ | $dateMAX = date( 'Y-m-d H:i:00', strtotime( $fecha . " -3 hour" ) ); | ||
+ | $fecha = date( 'Y-m-d H:i:00', strtotime( $fecha . " -2 minute" ) ); | ||
+ | $matrix[ 'date' ] = Charts_Controller::get_array_datetime_range( $dateMAX, $fecha, 60, 'H:i:00' ); | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | foreach ( $list_services as $service ) { | |
− | + | $matrix[ 'services' ][ $service ] = []; | |
+ | $indexes_service = array_keys( $data1->data[ $service ] ); | ||
+ | //Para cada índice de ese servicio | ||
+ | $datas_of_mongo = []; | ||
+ | foreach ( $indexes_service as $index_service ) { | ||
+ | //Si hora =1 o 2 necesito datos de los dos días para generar la matriz | ||
+ | //Si no lo cogeré de cada día | ||
− | + | switch ( $hour ) { | |
+ | case 0: | ||
+ | $h = 21; | ||
+ | //Primer array de documentos | ||
+ | $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ]; | ||
+ | $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] ); | ||
+ | $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] ); | ||
+ | break; | ||
+ | case 1: | ||
+ | $h = 22; | ||
+ | //Primer array de documentos | ||
+ | $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ]; | ||
+ | $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ $h + 1 ] ); | ||
+ | $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 0 ] ); | ||
+ | break; | ||
− | + | case 2: | |
− | + | $h = 23; | |
− | + | //Primer array de documentos | |
− | + | $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ]; | |
− | + | $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 0 ] ); | |
− | + | $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 1 ] ); | |
− | + | break; | |
− | + | default: | |
− | + | Logs_Controller::vardump( $index_service ); | |
− | + | ||
− | + | ||
− | + | ||
+ | //Primer array de documentos | ||
+ | $h = $hour - 2; | ||
+ | $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ]; | ||
+ | $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] ); | ||
+ | $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] ); | ||
+ | } | ||
+ | $matrix[ 'services' ][ $service ][ $index_service ] = $datas_of_mongo; | ||
+ | }//End while index (indices de los servicios | ||
+ | // echo "FECHA - VALOR SERVICIO<br/>"; | ||
+ | }//End foreach $services | ||
+ | //ver matriz | ||
+ | Logs_Controller::vardump( $matrix ); | ||
− | return $matrix; | + | return ($matrix); |
} | } | ||
</source> | </source> |
Revisión de 04:12 8 sep 2017
public static function create_matrices_last( $datas, $list_services, $hour ) { echo "<h2>MRM ---DEBUGANDO ...en create_matrices_fast </h2>"; //Inicializo el primer nivel del array $matrix[ 'host' ] = array_values( $datas )[ 0 ]->host_id; $matrix[ 'date' ] = []; //Será un array indexado de las diferentes fechas $matrix[ 'services' ] = []; //Array asociativo con cada servicio cada uno tendrá un arrau con los índices // //Ahora recorremos para cada documento (host - día) //primero inicializamos las fechas $min = "00"; //Nos quedamos con los dos array si los ubiera si no data2 tendrá un false reset( $datas ); Logs_Controller::vardump( $hour ); $data1 = current( $datas ); $data2 = next( $datas ); Logs_Controller::vardump( $data1 ); Logs_Controller::vardump( $data2 ); $fecha = substr( $data1->timestamp, 0, 10 ) . " $hour:00:00"; $dateMAX = date( 'Y-m-d H:i:00', strtotime( $fecha . " -3 hour" ) ); $fecha = date( 'Y-m-d H:i:00', strtotime( $fecha . " -2 minute" ) ); $matrix[ 'date' ] = Charts_Controller::get_array_datetime_range( $dateMAX, $fecha, 60, 'H:i:00' ); foreach ( $list_services as $service ) { $matrix[ 'services' ][ $service ] = []; $indexes_service = array_keys( $data1->data[ $service ] ); //Para cada índice de ese servicio $datas_of_mongo = []; foreach ( $indexes_service as $index_service ) { //Si hora =1 o 2 necesito datos de los dos días para generar la matriz //Si no lo cogeré de cada día switch ( $hour ) { case 0: $h = 21; //Primer array de documentos $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ]; $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] ); $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] ); break; case 1: $h = 22; //Primer array de documentos $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ]; $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ $h + 1 ] ); $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 0 ] ); break; case 2: $h = 23; //Primer array de documentos $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ]; $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 0 ] ); $datas_of_mongo = array_merge( $datas_of_mongo, $data2->data[ $service ][ $index_service ][ 1 ] ); break; default: Logs_Controller::vardump( $index_service ); //Primer array de documentos $h = $hour - 2; $datas_of_mongo = $data1->data[ $service ][ $index_service ][ $h ]; $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] ); $datas_of_mongo = array_merge( $datas_of_mongo, $data1->data[ $service ][ $index_service ][ ++$h ] ); } $matrix[ 'services' ][ $service ][ $index_service ] = $datas_of_mongo; }//End while index (indices de los servicios // echo "FECHA - VALOR SERVICIO<br/>"; }//End foreach $services //ver matriz Logs_Controller::vardump( $matrix ); return ($matrix); }