2017-02-26 3 views
1

Ich bin auf der Suche nach dem einfachsten und schnellsten Weg, um die meisten und die am wenigsten häufige Zeichen aus einer Zeichenfolge zu erhalten. Ich benutze PHPphp: am wenigsten/am häufigsten Zeichen

o am meisten und ich, l, e oder d am wenigsten. Dies ist nur ein zusammengesetztes Beispiel

Antwort

3

Sie können count_chars(string,mode) Methode von PHP verwenden, um Zahlen von Zeichen in einer Zeichenfolge zu zählen. Mehr über: count_chars()

<?php 
    $str = "google is good"; 
    $strArray = count_chars($str,1); 

    $leastArray = array_keys($strArray, min($strArray)); 
    $mostArray = array_keys($strArray, max($strArray)); 

    echo "Least<br />"; 
    foreach ($leastArray as $key=>$value) { 
     echo "The character <b>'". chr($value). "'</b><br />"; 
    } 
    echo "Most<br />"; 
    foreach ($mostArray as $key=>$value) { 
     echo "The character <b>'". chr($value). "'</b><br />"; 
    } 
?> 
+0

Vielen Dank –

+0

Ihre höchst willkommen. –

1
$long_string = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vulputate cursus sem, quis dapibus nunc accumsan eget. Fusce gravida vulputate risus vel ultrices. Morbi rhoncus ultricies tellus, non facilisis lorem ullamcorper id. Ut ultricies ligula quis nulla tristique pellentesque. Maecenas pellentesque, magna id porttitor ullamcorper, eros neque convallis dolor, eu suscipit lorem massa sit amet ligula. Integer nec ante id leo sagittis accumsan. Donec eu maximus libero. Donec vitae enim ut ligula placerat interdum. Aenean consequat, diam mattis euismod tempus, turpis lorem faucibus nulla, sed gravida justo nulla in ex. Ut vel consectetur lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vulputate cursus sem, quis dapibus nunc accumsan eget. Fusce gravida vulputate risus vel ultrices. Morbi rhoncus ultricies tellus, non facilisis lorem ullamcorper id. Ut ultricies ligula quis nulla tristique pellentesque. Maecenas pellentesque, magna id porttitor ullamcorper, eros neque convallis dolor, eu suscipit lorem massa sit amet ligula. Integer nec ante id leo sagittis accumsan. Donec eu maximus libero. Donec vitae enim ut ligula placerat interdum. Aenean consequat, diam mattis euismod tempus, turpis lorem faucibus nulla, sed gravida justo nulla in ex. Ut vel consectetur lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vulputate cursus sem, quis dapibus nunc accumsan eget. Fusce gravida vulputate risus vel ultrices. Morbi rhoncus ultricies tellus, non facilisis lorem ullamcorper id. Ut ultricies ligula quis nulla tristique pellentesque. Maecenas pellentesque, magna id porttitor ullamcorper, eros neque convallis dolor, eu suscipit lorem massa sit amet ligula. Integer nec ante id leo sagittis accumsan. Donec eu maximus libero. Donec vitae enim ut ligula placerat interdum. Aenean consequat, diam mattis euismod tempus, turpis lorem faucibus nulla, sed gravida justo nulla in ex. Ut vel consectetur lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vulputate cursus sem, quis dapibus nunc accumsan eget. Fusce gravida vulputate risus vel ultrices. Morbi rhoncus ultricies tellus, non facilisis lorem ullamcorper id. Ut ultricies ligula quis nulla tristique pellentesque. Maecenas pellentesque, magna id porttitor ullamcorper, eros neque convallis dolor, eu suscipit lorem massa sit amet ligula. Integer nec ante id leo sagittis accumsan. Donec eu maximus libero. Donec vitae enim ut ligula placerat interdum. Aenean consequat, diam mattis euismod tempus, turpis lorem faucibus nulla, sed gravida justo nulla in ex. Ut vel consectetur lorem. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam vulputate cursus sem, quis dapibus nunc accumsan eget. Fusce gravida vulputate risus vel ultrices. Morbi rhoncus ultricies tellus, non facilisis lorem ullamcorper id. Ut ultricies ligula quis nulla tristique pellentesque. Maecenas pellentesque, magna id porttitor ullamcorper, eros neque convallis dolor, eu suscipit lorem massa sit amet ligula. Integer nec ante id leo sagittis accumsan. Donec eu maximus libero. Donec vitae enim ut ligula placerat interdum. Aenean consequat, diam mattis euismod tempus, turpis lorem faucibus nulla, sed gravida justo nulla in ex. Ut vel consectetur lorem."; 

// set the starting microtime 
$debug_start = (float) array_sum(explode(' ',microtime())); 

// count the characters of the string 
$char_count = count_chars($long_string, 1); 

// set the ending microtime 
$end = (float) array_sum(explode(' ',microtime())); 


// how long did this take? 
var_dump($section." processing time: ". sprintf("%.4f", ($end-$debug_start))." seconds"); 

// returns 0.0000 seconds 

// sorts the array from highest to lowest occurence 
arsort($char_count); 

// dump out the array 
var_dump($char_count); 

Aufgrund der Tatsache, dass count_chars() kehrt 0,0000 Sekunden auf einer langen Schnur, es sinnlos wäre, weiter in eine bessere Leistung Code zu suchen, wenn Sie mit massiven Strings und Datensätzen arbeiten . PHP count_chars() ist sehr effizient.

Die arsort sortiert das Array für Sie nach höchsten bis niedrigsten Werten.

1

Im Folgenden Code geben Sie ein Array mit den Charakteren mit höchsten und niedrigsten Zeichen in der angegebenen String-Wiederholung:

$string = "google is good"; 
$ar = str_split(str_replace(' ', '', $string)); //removing white spaces and making array with each element 
$c =array_count_values($ar); //counting each elements in the array 
print_r(array_keys($c, max($c))); // most repeating 
print_r(array_keys($c, min($c))); // least repeating 
Verwandte Themen