minmod + Gestion de l'auto-typage à plusieurs niveaux possibles (Datbase::autotype(@data))
This commit is contained in:
parent
e8017fdd6a
commit
6d7b42b998
|
@ -125,16 +125,16 @@
|
|||
if( !\mb_detect_encoding($val, 'UTF-8') )
|
||||
$fetchData[$i][$col] = utf8_encode($val);
|
||||
|
||||
if( is_int($col) ){ // Si indice numerique
|
||||
if( $nextEquivalent ) // Si suit un indice textuel
|
||||
unset( $fetchData[$i][$col] ); // on supprime l'indice
|
||||
if( is_int($col) ){ // Si indice numerique
|
||||
if( $nextEquivalent ) // Si suit un indice textuel
|
||||
unset( $fetchData[$i][$col] ); // on supprime l'indice
|
||||
|
||||
$nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
|
||||
$nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
|
||||
|
||||
}else // Si l'indice n'est pas un entier
|
||||
$nextEquivalent = true; // On signale qu'il y aura peut etre un indice numerique suivant
|
||||
}else // Si l'indice n'est pas un entier
|
||||
$nextEquivalent = true; // On signale qu'il y aura peut etre un indice numerique suivant
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* [2] 1 dimensions
|
||||
===============================================*/
|
||||
|
@ -164,6 +164,47 @@
|
|||
|
||||
|
||||
|
||||
|
||||
/* GESTION DE L'AUTO-TYPAGE D'UN TABLEAU A UN/PLUSIEURS NIVEAU(X) OU D'UNE VALEUR
|
||||
*
|
||||
* @data<mixed> Tableau de données/Valeur
|
||||
*
|
||||
* @return autoTyped<Array> Tableau/Valeur auto-typé(e)
|
||||
*
|
||||
*/
|
||||
public static function autotype($data){
|
||||
$autotyped = $data;
|
||||
|
||||
/* [0] Gestion des types simples
|
||||
=========================================================*/
|
||||
if( !is_array($autotyped) ){
|
||||
|
||||
/* (1) Si Numérique Entier -> INT */
|
||||
if( is_numeric($autotyped) && intval($autotyped) == $autotyped )
|
||||
return intval($autotyped);
|
||||
|
||||
/* (2) Si Numérique Décimal -> FLOAT */
|
||||
else if( is_numeric($autotyped) && floatval($autotyped) == $autotyped )
|
||||
return floatval($autotyped);
|
||||
|
||||
/* (3) Sinon on retourne la même chose */
|
||||
else
|
||||
return $autotyped;
|
||||
|
||||
/* [1] Gestion des types composés
|
||||
=========================================================*/
|
||||
}else{
|
||||
|
||||
// Pour chaque valeur, on applique récursivement
|
||||
foreach($autotyped as $k=>$v)
|
||||
$autotyped[$k] = self::autotype($v);
|
||||
|
||||
}
|
||||
|
||||
return $autotyped;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
// _ __ _ _ _
|
||||
// __ _____ _ __(_)/ _(_) ___ __ _| |_(_) ___ _ __ ___
|
||||
|
|
|
@ -337,14 +337,18 @@
|
|||
|
||||
|
||||
debug();
|
||||
$req = new Repo('machine_cluster/link', [
|
||||
7,
|
||||
2,
|
||||
3
|
||||
]);
|
||||
$int = '1';
|
||||
$flo1 = '1.2';
|
||||
$flo2 = '1,2';
|
||||
$str = '1,s2';
|
||||
$arr = [$int, $flo1, $flo2, $str];
|
||||
|
||||
var_dump( $req->error );
|
||||
var_dump( $req->answer() );
|
||||
|
||||
var_dump( Database::autotype($int) );
|
||||
var_dump( Database::autotype($flo1) );
|
||||
var_dump( Database::autotype($flo2) );
|
||||
var_dump( Database::autotype($str) );
|
||||
var_dump( Database::autotype($arr) );
|
||||
|
||||
|
||||
?>
|
||||
|
|
Loading…
Reference in New Issue