text_reverse.php

Falls mal einer die Zeilen eines Textes umdrehen möchte:

//source file
$source = "konzerte.txt";

//put the lines of the files in the lines-array
$lines = file($source);

//reverse the lines-array
$lines = array_reverse($lines);

//put the elements of the reversed array together
foreach ($lines as $element) {
    $text .= $element;
}

//output file
$output = "bla.txt";

//open the output file and create it if it doesn't exist
$handler = fOpen($output, "a+");

//write the file
fWrite($handler , $text);

Vorher:

la
le
lu

Nachher:

lu
le
la

Download: text_reverse.php

Binäre Suche mit PHP

Ich bin grade dabei mich auf die mündliche Nachprüfung zu Algorithmen vorzubereiten. Aus diesem Grund hab ich mir das Ziel Gesetzt möglichst alle Algorithmen die wir da hatten auch mal in PHP zu programmieren. Den Anfang macht die Suche.

Bei der ganz normalen linearen Suche wird die Liste oder hier der Array ja einfach von einer Seite her durch gegangen bis der gesuchte Wert gefunden wurde.
Das sieht dann so aus:

function linear_search($a, $k){
    for($i = 0; $i < count($a); $i++){
        if($k == $a[$i]){
            return true;
        }
    }
    return false;
}

Joa, da ist ja nix weiter dabei. Die Binäre Suche sieht dann schon bissl komplizierter aus:

function binary_search($a, $k){

    //Mitte finden
    $mitte = round(count($a)/2, 0)-1;

    //wenn die Mitte der gesuchte Wert ist...
    if($k == $a[$mitte]){
        echo $a[$mitte]." gefunden";
        return true;
    }
    //wenn der Array nur noch einen Wert enthält aber die Mitte nicht
    //der gesuchte Wert ist
    elseif(count($a)==1){
        echo $k." nicht gefunden";
        return false;
    }
    //wenn der gesuchte Wert kleiner als die Mitte ist...
    elseif($k < $a[$mitte]) {
        //Array aus linker Hälfte bilden und in dieser weitersuchen
        return binary_search(array_slice($a, 0, $mitte), $k);
    }
    //wenn der gesuchte Wert größer als die Mitte ist...
    elseif($k > $a[$mitte-1]) {
        //Array aus rechter Hälfte bilden und in dieser weitersuchen
        return binary_search(array_slice($a, $mitte+1, count($a)), $k);
    }
}

Ja, vielleicht kanns ja mal wer brauchen! 😉

PS: Irgendwie sieht das so hier mächtig scheiße aus. Leider hab ich kein gescheites Plugin für WordPress gefunden dass vielleicht sogar sowas wie Syntax Highlighting für PHP kann, geschweige denn überhaupt eines welches die Code-Funktion hier etwas aufmöbelt!

Edit:
Mit der richtigen Suchzeile findet man auch das passende Ergebnis! 🙂 Bei meinem “Hinundwieder-Arbeitgeber” der ilimitado OHG aus Tübingen hab ich ein wp-syntax gefunden. Dieses Plug-In beherrscht sogar Syntax-Highlighting und kann über 80 Sprachen! So sieht das doch schon deutlich besser aus!