Hilfe: Array Diff mit Teilwert

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

  • Hilfe: Array Diff mit Teilwert

    Hallo

    Da ich vor lauter Bäume den Wald nicht mehr sehe, frage ich einfach mal frech in die runde.

    Mein Problem ist das ich zwei arrays habe mit Werten, das problem was ich nun versuche ist ein array_diff zu machen um die fehlende Werte zu bekommen.

    Leider ist dies nicht auf einer SQL Engine aufgebaut und somit muss ich dies mit 2 array lösen.

    zb

    Array Wert 1: 1234-DE-UI-UIOO

    Array Wert 2: 1234-de-ui-uioo-balrt_7890.txt

    $result = array_diff ($array1, $array2);

    Dies sollte nun eigentlich als Match kommen und nicht wie jetzt als fehler, leider kann ich im Netz keine Lösung finden.

    Vielleicht hat jemande von euch eine Lösung, evtl. mit in_array etc?
    Bin für jeden Vorschlag mehr als dankbar.

    Gruss Michel

  • #2
    Was denn für fehlende Werte?

    Vielleicht solltest du mal eine Runde um den Block gehen, den Schädel durchblasen lassen; dann kannst du vielleicht wenigstens eine sinnige Problembeschreibung abliefern.

    Kommentar


    • #3
      den Schädel durchblasen lassen;
      ich glaube, dass er dann überhaupt nichts mehr liefern kann ...
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        In der Zwischenzeit Schädel durchgelüfftet

        Mein Problem ist das ich eigentlich zwei Array's habe, siehe oben die Beispielswerte.

        Wenn man diese mit "array_diff" vergleicht, sind diese für das diff verschieden, was auch so recht ist.

        Meine frage war nun, ob es eine Zusatzvariabel oder anderen Lösungsansatz gibt, wo ich Teilwerte und egal gross oder kleingeschrieben mir dies als TRUE ausweisst.

        Wenn ich eine DB via mySQL einsetzen würde, wäre die Lösung einfach ala query "%MEINWERT%, aber dies habe ich nunmal hier nicht zur Verfügung, daher müsste es im Array passieren.

        Any ideas?

        Gruss Michel

        Kommentar


        • #5
          du kannst ja vor der prüfung auf beide strings (also arrays einzeln durchgehen) durch strtoupper() / strtolower() jagen.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Nicht probiert, nur mal eben aus php.nat rauskopiert:
            Very easy way of achieving a case-insensitive version of array_diff (or indeed array_diff_assoc, array_intersect or any of these types of functions which have a similar function that takes a callback function as one of their parameters):

            array_udiff($array1, $array2, 'strcasecmp');

            This works because strcasecmp() compares two strings case-insensitively, as compared to the array_diff() which compares two strings by using the == operator, which is case-sensitive.
            Vielleicht hilft das ja weiter...

            Kommentar


            • #7
              danke für die Vorschläge, leider hätte ich dies mit gross und klein weglassen sollen.

              Mein Hauptproblem liegt dran zwei Werte zu vergleichen die in Wirklichkeit nicht gleich sind. Aber denoch als TRUE ausgegeben werden sollte.

              Habe einen Wert: BCDE
              Zweiter Wert ist: ABCDEFGHI

              Da BCDE in ABCDEFGHI vorkommt, spich für mich ein Teilwert ist, wie bei einer Suchmaschine sollte das Script hier nun TRUE liefern.

              Geht dies via array_diff, in_array oder eben einen Vorschlag von euch?

              gruss michel

              Kommentar


              • #8
                Versuchs mal damit
                gruss Chris

                [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

                Kommentar

                Lädt...
                X