*verzweifel* in_array

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • *verzweifel* in_array

    Hallo, baue seit Stunden an einer eigentlich ganz einfachen Aufgabe. Ich lade entsprechende Wert in ein Array ($ja), jetzt möchte ich prüfen ob alle Werte mit einem anderen Array ($array) übereinstimmen:

    PHP-Code:
    $wert "ahk abnehmbar 7 polig";
    echo 
    "Aktueller Wert: <b>$wert</b><hr><br>";
    $wert split("[ .,:-]",$wert." ");

    for(
    $wi=0;$wi<(count($wert) - 1);$wi++) 
        { 
            if(
    $wert[$wi]!=""
                { 
                    
    $array[] = strtolower(substr($wert[$wi],0,3));
                    
    $test .= ",".strtolower(substr($wert[$wi],0,3));
                    
    $erw_abfrage .= " || parser LIKE '%".strtolower(substr($wert[($wi 1)],0,3))."%'"
                } 
        }

    $db->query("SELECT * FROM parsifal WHERE parser LIKE '%".$array['0']."%' $erw_abfrage");
    if(!
    $db->num_rows()) { echo "Keine Übereinstimmung in der Datenbank gefunden"; }

    while (
    $db->next_record()) 
        {
            
    $trenne_cache explode("&",entferne_zeichen(strtolower($db->f("parser"))));
            
    $ja           explode(",",str_replace("mit=","",$trenne_cache['0']));
            
    $nein         explode(",",str_replace("ohne=","",$trenne_cache['1']));
            
            foreach(
    $nein as $nwert)  { if(in_array($nwert$array)) { $fehler++; } }
            foreach(
    $ja as $jwert)    { if(in_array($jwert$array)) { $erfolg++; } }
                        
            echo 
    "Datensatz : <b>".$db->f("term_de")."</b>";
            if(!isset(
    $fehler) && $erfolg == count($ja)) { echo " -> Das Extra wurde übernommen"; }
            echo 
    "<br>Treffer: $erfolg von ".count($ja)." (Fehler: $fehler)<br><br>";

            unset(
    $fehler);
            unset(
    $erfolg); 
        } 
    Komischerweise wird aber nur jeder zweite Treffer gezählt ??!!
    Hat jemand ne Idee (die Suche im Forum hat nichts gebracht)
    Mit freundlichen Grüßen
    Werner

  • #2
    Re: *verzweifel* in_array

    Und was bitte haben deine eigenen Debugversuche erbracht?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      PHP-Code:
      if(empty(array_diff($a,$array)){
        echo 
      'Beide Arrays sind identisch';

      Zuletzt geändert von jahlives; 05.06.2007, 13:07.
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Naja, komischerweise wird so gezählt:

        1
        1
        2
        2

        usw. ich habe keine Erklärung. Ich habe an verschiedenen Stellen die Arrays ausgegeben und auch verglichen, auch wenn ich ($array) in den $test String lege und mit strpos beigehe wird auch

        1
        1
        2
        2

        gezählt.
        sehr merkwürdig
        Mit freundlichen Grüßen
        Werner

        Kommentar


        • #5
          array_diff hilft mir leider nicht da in der variablen $wert beliebiger text stehen kann. Wichtig ist, das die "ja" Werte aus der Datenbank mit denen im Array übereinstimmen und die "nein" Werte nicht vorkommen. Ich muß die Treffer und Fehler zählen und vergleichen.
          Mit freundlichen Grüßen
          Werner

          Kommentar


          • #6
            OffTopic:
            Das ist immer noch keine Problembeschreibung, mit der ich was anfangen kann (bzw. in die mich hineinzudenken ich bereit wäre).

            Erst bekommt man unkommentierten Code hingeklatscht, dann eine Minimalbeschreibung der Anforderung, die das Allermeiste immer noch unklar lässt - und damit soll man sich jetzt was ausdenken?

            Leute, lernt endlich mal, eure Probleme halbwegs vernünftig und nachvollziehbar zu beschreiben.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar

            Lädt...
            X