Anzeige

Arrayinhalt vergleichen

Arrayinhalt vergleichen | PSD-Tutorials.de

Erstellt von ItsNeko, 24.08.2008.

  1. ItsNeko

    ItsNeko NekoGraphix

    Dabei seit:
    22.05.2008
    Beiträge:
    186
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Editor und Paint ;)
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    Hallöchen,
    ich habe folgendes problem:
    ich habe ein Array indem immer neue zufällige werde gespeichert werden.
    Ein Script soll mir die inhalte ausgeben.
    zur Veranschaulichung was ich meine ein beispiel:

    in dem Array stehen:
    Haus Haus Baum Auto Haus Auto Baum

    als ausgabe soll stehen
    Haus 3x
    Baum 2x
    Auto 2x

    allerdings kenn ich die werte nicht also währe das
    Wert[0] gibt es 3x
    Wert[2] gibt es 2x
    usw.

    danke schon mal für die hilfe

    ps.
    Sprache ist egal, PHP oder JavaScript, je nachdem was besser ist/ besser klappt
     
    #1      
  2. Duffman15

    Duffman15 Nicht mehr ganz neu hier

    Dabei seit:
    09.04.2007
    Beiträge:
    108
    Geschlecht:
    männlich
    Ort:
    Bayern
    Software:
    Photoshop CS3, Dreamweaver CS3, FLash CS3
    Kameratyp:
    Canon PowerShot A75
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    Dafür gibts in PHP die Funktion array_count_values. Die macht genau das, was du brauchst ;)
    Ein beispiel:
    PHP:
    1.  
    2. <?php
    3. $arr = array("Haus", "Baum", "Haus", "Haus", "Auto");
    4. $count_values = array_count_values($arr);
    5. ?>
    6.  
    $coun_values wäre dann ein Array, das so aussieht:
    Array
    (
    [Haus] => 3
    [Baum] => 1
    [Auto] => 1
    )
    Liebe Grüße,
    Lucas :)
     
    #2      
  3. ItsNeko

    ItsNeko NekoGraphix

    Dabei seit:
    22.05.2008
    Beiträge:
    186
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Editor und Paint ;)
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    hey das ist ja super,
    habe nicht gedacht das es wirklich so einfach ist^^

    vielen dank ich werde es gleich mal ausprobieren
     
    #3      
  4. ItsNeko

    ItsNeko NekoGraphix

    Dabei seit:
    22.05.2008
    Beiträge:
    186
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Editor und Paint ;)
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    hey erm erstmal sorry für einen doppelpost.

    so funktioniert die funktion schon mal ganz gut, allerdings wüsste ich gern ob man da noch was dran stylen kann.
    Die ausgabe
    Array
    (
    [Haus] => 3
    [Baum] => 1
    [Auto] => 1
    )
    gefällt mir irgendwie nicht so 100%ig.
    am besten währe es natürlich wenn die werde in einer tabelle stehen,
    also nur name und anzahl ohne eckige klammern, pfeilen usw.
    geht das irgendwie?
     
    #4      
  5. Christian

    Christian verpeilt & verschallert

    Dabei seit:
    03.03.2005
    Beiträge:
    853
    Geschlecht:
    männlich
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    ehm, also denken muss man dabei aber schon, das ist die klar, ne? ;)
    PHP:
    1. <?
    2. // PHP_EOL ist eine PHP Konstante und bezeichnet die Zeilenumbruch-
    3. // Escapesequenz des aktuellen Betriebssystems.
    4. $input_array = array("Haus", "Baum", "Haus", "Haus", "Auto");
    5. $strTable = '<table>'.PHP_EOL;
    6. foreach( array_count_values( $input_array ) as $key=>$keyCount ){
    7.     $strTable .= '  <tr>'.PHP_EOL;
    8.     $strTable .= '    <td>'.$key.' '.$keyCount.'x</td>'.PHP_EOL;
    9.     $strTable .= '  </tr>'.PHP_EOL;
    10. }
    11. $strTable .= '</table>'.PHP_EOL;
    12.  
    13. print($strTable);
    14. ?>
    nicht getestet, sollte aber so vom Blatt gehen

    LG
     
    Zuletzt bearbeitet: 25.08.2008
    #5      
  6. LowkaZ

    LowkaZ Half Life

    Dabei seit:
    19.01.2006
    Beiträge:
    697
    Geschlecht:
    männlich
    Ort:
    Dudweiler
    Software:
    Textmate, WordPress, jQuery, PHP5, MySQL, CSS3, HTML5
    Kameratyp:
    Leica
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    lol sorry das is gut
     
    #6      
  7. ItsNeko

    ItsNeko NekoGraphix

    Dabei seit:
    22.05.2008
    Beiträge:
    186
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Editor und Paint ;)
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    Hey,
    vielen dank für die antwort.
    tut mir leid ich bin noch ein kleiner newbie in sachen php,
    da hilft auch denken nix :p

    dein script funktioniert hervorragend^^
    vielen dank
     
    #7      
  8. ItsNeko

    ItsNeko NekoGraphix

    Dabei seit:
    22.05.2008
    Beiträge:
    186
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Editor und Paint ;)
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    hey da bin ich wieder,
    nochmal sorry für ein doppelpost.

    so funktioniert das alles schon mal ganz gut, allerdings habe ich jetzt ein neues problem,
    ich habe am anfang geschrieben das ich ein array habe, indem immer neue zufällige werde gespeichert werden. Dies ist eine dat datei. Anfangs hatte ich das alles mit javascript geplant, darum konnte ich die datei ganz einfach mit include einbinden.
    Aber jetzt weiß ich nicht wie ich die datei in php einbinden kann.
    PHP:
    1. $input_array = array(include "daten.dat");
    Funktioniert ja nicht.
    Hat jemand eine idee wie ich das verwirklichen kann?
     
    #8      
  9. Christian

    Christian verpeilt & verschallert

    Dabei seit:
    03.03.2005
    Beiträge:
    853
    Geschlecht:
    männlich
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    in welchem Format ist denn die Datei.dat?

    CSV (mit Trennzeichen getrennte Werte) oder nach ******ize()-Schema?

    Am besten Du postest kurz den Inhalt der Datei.dat
     
    #9      
  10. ItsNeko

    ItsNeko NekoGraphix

    Dabei seit:
    22.05.2008
    Beiträge:
    186
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Editor und Paint ;)
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    naja der inhalt ist halt genau so das es in ein array hineinpassen würde
    Code (Text):
    1. 'Haus','Baum','Haus','Auto'
     
    #10      
  11. Duffman15

    Duffman15 Nicht mehr ganz neu hier

    Dabei seit:
    09.04.2007
    Beiträge:
    108
    Geschlecht:
    männlich
    Ort:
    Bayern
    Software:
    Photoshop CS3, Dreamweaver CS3, FLash CS3
    Kameratyp:
    Canon PowerShot A75
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    Also wenn ich das richtig verstehe, steht das so in der Datei?
    Naja, dann würde ich datei auslesen (File-Funktionen) und den Inhalt in einer Variable speichern. Und dann würd ich so weitermachen:
    PHP:
    1.  
    2. <?php
    3. ...
    4. $value = "'Haus','Baum','Haus','Auto'"; // Variable mit dem Inhalt der Datei
    5. $value = substr($value, 1, 1) // Anführungszeichen am Anfang und am Ende entfernen
    6. $value = explode("','", $value); // In Array verwandeln
    7. ...
    8. ?>
    9.  
     
    #11      
  12. Christian

    Christian verpeilt & verschallert

    Dabei seit:
    03.03.2005
    Beiträge:
    853
    Geschlecht:
    männlich
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    schöner:
    PHP:
    1. <?
    2. // <CONFIG>
    3.  
    4. /**
    5.  * Die Daten in der Datei Daten.dat können mehrzeilig aufgeführt sein
    6.  * im CSV Format.
    7.  * --------------------------
    8.  * Beispiel einer Daten.dat:
    9.  * --------------------------
    10.  * 'Haus','Baum','Haus','Auto'
    11.  * 'Haus','Baum','Haus','Auto'
    12.  * 'Haus','Baum','Haus','Auto'
    13.  */
    14. $filepath  = 'Daten.dat';
    15.  
    16. /**
    17.  * Angaben zur Formatierung der Datenfelder in $filepath
    18.  * Nur Ändern, wenn man das oben genannte Beispiel in
    19.  * seiner Formatierung geändert hat
    20.  */
    21. $delimiter = ','; # Feldtrenner
    22. $enclosure = "'"; # Feldumklammerung
    23. // </CONFIG>
    24.  
    25. $input_array = array();
    26. $fHandle   = @fopen( $filepath, 'r' );
    27. while(false !== ($row = fgetcsv($fHandle,@filesize($filepath), $delimiter, $enclosure))){
    28.     if( sizeof($row) > 0 ){
    29.         foreach($row as $field){
    30.             $input_array[]  = $field;
    31.         }
    32.     }
    33. }
    34. @fclose($fHandle);
    35.  
    36. // PHP_EOL ist eine PHP Konstante und bezeichnet die Zeilenumbruch-
    37. // Escapesequenz des aktuellen Betriebssystems.
    38. $strTable = '<table>'.PHP_EOL;
    39. foreach( array_count_values( $input_array ) as $key=>$keyCount ){
    40.     $strTable .= '  <tr>'.PHP_EOL;
    41.     $strTable .= '    <td>'.$key.' '.$keyCount.'x</td>'.PHP_EOL;
    42.     $strTable .= '  </tr>'.PHP_EOL;
    43. }
    44. $strTable .= '</table>'.PHP_EOL;
    45.  
    46. print($strTable);
    47. ?>
     
    #12      
  13. ItsNeko

    ItsNeko NekoGraphix

    Dabei seit:
    22.05.2008
    Beiträge:
    186
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Editor und Paint ;)
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    Hey super danke,
    das funktioniert genau so wie ich es mir vorgestellt habe.
    Sollte noch was sein dann melde ich mich nochmal^^
    vielen dank
     
    #13      
  14. ItsNeko

    ItsNeko NekoGraphix

    Dabei seit:
    22.05.2008
    Beiträge:
    186
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Editor und Paint ;)
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    ha erm ich bins wieder xD
    tut mir leid ich raffs einfach nicht.
    ich hab das jetzt bei mir eingebaut aber irgendwie klappts nicht.
    ich bekomm nur eine fehlermeldung.

    Code (Text):
    1.    
    2.  [B]Warning:  [/B]fgetcsv() expects parameter 1 to be resource, boolean given in [B]/users/nekographix/www/hp/stats/stats.php[/B] on line [B]86[/B]
    was könnte das sein?

    ---
    Hat sich erledigt ich habs selbst hinbekommen
    danke nochmal an alle
     
    Zuletzt bearbeitet: 27.08.2008
    #14      
  15. Christian

    Christian verpeilt & verschallert

    Dabei seit:
    03.03.2005
    Beiträge:
    853
    Geschlecht:
    männlich
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    Das bedeutet, dass dein Dateipfad nicht stimmt!
    Benutz mal das hier:
    PHP:
    1. <?
    2. // <CONFIG>
    3.  
    4. /**
    5.  * Die Daten in der Datei Daten.dat können mehrzeilig aufgeführt sein
    6.  * im CSV Format.
    7.  * --------------------------
    8.  * Beispiel einer Daten.dat:
    9.  * --------------------------
    10.  * 'Haus','Baum','Haus','Auto'
    11.  * 'Haus','Baum','Haus','Auto'
    12.  * 'Haus','Baum','Haus','Auto'
    13.  */
    14. $filepath  = 'Daten.dat';
    15.  
    16. /**
    17.  * Angaben zur Formatierung der Datenfelder in $filepath
    18.  * Nur Ändern, wenn man das oben genannte Beispiel in
    19.  * seiner Formatierung geändert hat
    20.  */
    21. $delimiter = ','; # Feldtrenner
    22. $enclosure = "'"; # Feldumklammerung
    23. // </CONFIG>
    24.  
    25. $input_array = array();
    26. $fHandle   = @fopen( $filepath, 'r' ) or die('Datei ['.$filepath.'] konnte nicht gefunden werden.');
    27. while(false !== ($row = fgetcsv($fHandle,@filesize($filepath), $delimiter, $enclosure))){
    28.     if( sizeof($row) > 0 ){
    29.         foreach($row as $field){
    30.             $input_array[]    = $field;
    31.         }
    32.     }
    33. }
    34. @fclose($fHandle);
    35.  
    36. // PHP_EOL ist eine PHP Konstante und bezeichnet die Zeilenumbruch-
    37. // Escapesequenz des aktuellen Betriebssystems.
    38. $strTable = '<table>'.PHP_EOL;
    39. foreach( array_count_values( $input_array ) as $key=>$keyCount ){
    40.     $strTable .= '  <tr>'.PHP_EOL;
    41.     $strTable .= '    <td>'.$key.' '.$keyCount.'x</td>'.PHP_EOL;
    42.     $strTable .= '  </tr>'.PHP_EOL;
    43. }
    44. $strTable .= '</table>'.PHP_EOL;
    45.  
    46. print($strTable);
    47. ?>
     
    #15      
  16. ItsNeko

    ItsNeko NekoGraphix

    Dabei seit:
    22.05.2008
    Beiträge:
    186
    Geschlecht:
    männlich
    Ort:
    Berlin
    Software:
    Editor und Paint ;)
    Kameratyp:
    Canon EOS 300D
    Arrayinhalt vergleichen
    AW: Arrayinhalt vergleichen

    Jo habs schon gefunden und behoben, danke nochmal :D
     
    #16      
x
×
×
teststefan