Item as $log){
// On recupere le numero en string
$num = (string) $log['Number'];
// On formatte le numero
if( preg_match("/^(?:\+33|33|0)(.+)/", $num, $m) )
$num = '0'.$m[1];
// Si pas un numero, on sort de la boucle
else
continue;
/* (1) Si le type est MMS ou SMS */
if( $log['Type'] == 'SMS' || $log['Type'] == 'MMS' ){
// Si la personne n'est pas referencee, on l'ajoute
// Sinon on incremente son nombre d'apparition
if( isset($msms[$num]) )
$msms[$num]+= 1;
else
$msms[$num] = 1;
// On enregistre le nom si c'est pas fait
if( !isset($names[$num]) ) $names[$num] = $log['Name'];
/* (2) Si le type est PHONE */
}else if( $log['Type'] == 'PHONE' ){
// Si la personne n'est pas referencee, on l'ajoute
// Sinon on incremente son nombre d'apparition
if( isset($call[$num]) )
$call[$num]+= 1;
else
$call[$num] = 1;
// On enregistre le nom si c'est pas fait
if( !isset($names[$num]) ) $names[$num] = $log['Name'];
}
// var_dump( $log );
}
/* [4] On trie par nombre de contacts
=========================================================*/
$tmp = $msms;
/* (2) Tri des appels */
$maxMSMS = array();
for( $i = 0 ; $i < 10 ; $i++ ){
$maxval = max($tmp);
$maxkey = array_search($maxval, $tmp);
array_push( $maxMSMS, array($maxkey, $maxval) );
unset($tmp[$maxkey]);
}
$tmp = $call;
/* (2) Tri des appels */
$maxCalls = array();
for( $i = 0 ; $i < 10 ; $i++ ){
$maxval = max($tmp);
$maxkey = array_search($maxval, $tmp);
array_push( $maxCalls, array($maxkey, $maxval) );
unset($tmp[$maxkey]);
}
/* [5] On debug les donnees recues
=========================================================*/
echo "Il y a ".count($names)." personnes :
";
echo "- ".count($msms)." par SMS/MMS
";
echo "- ".count($call)." par telephone
";
echo "TOP 10 DES APPELS
";
echo "=================
";
foreach($maxCalls as $v)
var_dump( $v[0] ." (".$names[$v[0]].") \t\t\t". $v[1] ." appels");
echo "TOP 10 DES MMS/SMS
";
echo "==================
";
foreach($maxMSMS as $v)
var_dump( $v[0] ." (".$names[$v[0]].") \t\t\t". $v[1] ." appels");
// var_dump( $call );
return 0;
}
parseCallLog();
?>