webForumDet fria alternativet

Class, egen sortering och funktioner

PHP

3 svar · 263 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Jag skulle vilja ha hjälp att bygga en grej i klass där man hämtar namn från en textfil där namnen står 1 på varje rad och sedan i klassen ska man lägga in namnet i en array och sedan sortera med egenbyggd funktion och spara de sorterade namnen i textfilen och sen ska detta skrivas ut.

Hoppas någon förstår hur jag menar! Här kommer en kod som jag börjat med men jag fattar typ nada hur man ska göra.

[b]namn.txt[/b]
Namn 1
Namn 2
Namn 3
Namn 4
Namn 5
Namn 6

[b]sort.php[/b]
<?
$pers = new Person();

$f = @fopen("namn.txt","r");
while(!feof($f)){
  $tmp = fgets($f,100);
  $pers -> setVar($tmp);
}fclose($f);

class Person{
  var $p_namn;

  function Person(){
    
  }
  function setVar($namn){
    $this -> p_namn[] = $namn;
  }
  function sort(){
    for($i=0;$i < Count($namn)-1;++$i){
      for($j=0;$j < Count($namn)-1-$i;++$j){
        if($p_namn[$j] > $p_namn[$j+1]){
          $temp = $p_namn[$j];
          $p_namn[$j] = $p_namn[$j+1];
          $p_namn[$j+1] = $temp;
        }
      }
    }
    for($x=0;$x < Count($namn);$x++){
      echo $this -> $p_namn[$x]."<br>";
    }
  }
}

$pers -> sort();
?>
Medlem sedan mars 20007 896 inlägg
#2

Varför vill du skriva en egen sorteringsalgoritm? PHP's inbyggda fungerar ju finemang.

class Person {
     var $element;

     function Person( $fil ) {
          $this->element = file( $fil );
          sort( $this->element );
     }

     function storlek() {
          return count( $this->element );
     }

     function hämta( $index ) {
          return $this->element[$index];
     }
}

$pers = new Person( "fil.txt" );
for( $i = 0; $i < $pers->storlek(); $i++ ) {
     echo $pers->hämta( $i );
}
Medlem sedan dec. 20011 860 inlägg
#3

Kan vara skoj att ha en egen sådan! Kan ju bara bra att kunna göra en sådan...

Medlem sedan dec. 20011 860 inlägg
#4

Löste det så här:

<?
$pers = new Person();

$f = fopen("namn.txt","r");
while(!feof($f)){
  $namn = fgets($f,100);
  $pers -> setPerson($namn);
}fclose($f);

class Person{
  var $namn;

  function Person(){
    
  }
  function setPerson($namn){
    $this -> namn[] = $namn;
  }
  function getPerson(){
    foreach($this -> namn as $f){
      echo $f."<br>";
    }
  }
  function Sortera(){
    for($i=0;$i < Count($this -> namn)-1;++$i){
      for($j=0;$j < Count($this -> namn)-1-$i;++$j){
        if($this -> namn[$j] > $this -> namn[$j+1]){
          $temp = $this -> namn[$j];
          $this -> namn[$j] = $this -> namn[$j+1];
          $this -> namn[$j+1] = $temp;
        }
      }
    }
    for($x=0;$x < Count($this -> namn);$x++){
      echo $this -> namn[$x]."<br>";
    }
  }
}

$pers -> getPerson();
echo "<br><br>";
$pers -> Sortera();
?>
260 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)