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(); ?>