Prüfen, ob ein Wert in einer durch Komma getrennten Zeichenkette mit PHP existiert [duplizieren]

8

Ich muss prüfen, ob meine ID in einer durch Komma getrennten Zeichenfolge existiert.

Meine Zeichenfolge wird als "1,2,3,4,10" in der Datenbank gespeichert.

Ich habe es versucht

%Vor%

Es funktioniert nicht. Irgendwelche Lösungen bitte ...

    
kuttypraba 24.11.2012, 07:06
quelle

4 Antworten

29

Verwenden Sie explode() , um ein Array von Stringteilen aus einem String zu erstellen, indem Sie es teilen ein bestimmtes Trennzeichen (in diesem Fall ein Komma).

%Vor%     
Decent Dabbler 24.11.2012 07:08
quelle
2

in_array() ist genau das, was Sie wollen, aber Sie erstellen Ihr Array falsch.

Annahme $sqlvalue = '1,2,3,4,10' ...

%Vor%

Dann können Sie in_array() verwenden.

    
Brad 24.11.2012 07:08
quelle
1

zuerst mit der Funktion explode konvertieren Sie die durch Kommas getrennte Zeichenfolge in Array

%Vor%

Verwenden Sie dann die in_array-Funktion, um

zu überprüfen %Vor%     
Tapas Pal 24.11.2012 08:25
quelle
1

Anstatt nur das Symptom zu heilen, lasst mich einen anderen Ansatz anbieten.

Sie sollten Ihre Daten wahrscheinlich so in der Tabelle speichern. Es sollte möglich sein, die Datenbank herauszufinden, ob ein Produkt versteckt ist oder nicht. Dafür müssen Sie Ihre Daten ordnungsgemäß normalisieren.

Anscheinend haben Sie irgendwo eine Tabelle mit Produkten und einige sollten versteckt sein. Wenn dies eine Eigenschaft true oder false ist, die zu jedem Produkt gehört, können Sie sie einfach als neue Spalte in Ihre Produkttabelle einfügen.

%Vor%

Wenn hidden keine intrinsische Eigenschaft Ihrer Produkte ist, können Sie auch eine Hilfstabelle erstellen, die einfach eine Liste von Produkt-IDs darstellt.

Ein Eintrag sagt einfach, dass das Produkt versteckt ist. Wenn eine ID nicht in der Tabelle vorhanden ist, ist sie nicht verborgen.

    
phant0m 24.11.2012 12:30
quelle

Tags und Links

Django: Verwenden von Annotate, Count und Distinct in einem Queryset ___ tag123regex ___ Reguläre Ausdrücke stellen eine deklarative Sprache zur Verfügung, um Muster in Strings zu vergleichen. Sie werden häufig für die Überprüfung, Analyse und Umwandlung von Zeichenfolgen verwendet. Da reguläre Ausdrücke nicht vollständig standardisiert sind, sollten alle Fragen mit diesem Tag auch ein Tag enthalten, das die anwendbare Programmiersprache oder das entsprechende Werkzeug angibt. HINWEIS: Nach HTML-, JSON-, usw.-Regexen zu fragen, neigt zu negativen Reaktionen. Wenn es einen Parser dafür gibt, verwende stattdessen diesen. ___ tag123r ___ R ist eine freie, quelloffene Programmiersprache und Softwareumgebung für statistische Berechnungen, Bioinformatik, Visualisierung und allgemeine Datenverarbeitung. Stellen Sie minimale, reproduzierbare, repräsentative Beispiele für Ihre Fragen bereit. Verwenden Sie dput () für Daten und geben Sie alle Nicht-Basis-Pakete mit Bibliotheksaufrufen an. Bilder für Daten oder Code nicht einbetten, eingerückte Codeblöcke verwenden. Verwenden Sie für statistische Fragen http://stats.stackexchange.com. ___ qstntxt ___

Ich habe eine Zeichenfolge

df

%Vor%

Ich mag zum Beispiel Zeichen zwischen der Parentesie zu erfassen. Ich möchte ID-1290 aus dem obigen Beispiel erhalten.

Ich habe das benutzt:

%Vor%

Das gibt mir Zahlen wie

%Vor%

Gibt es eine einfache Möglichkeit, Text zwischen Parentese mit Regex in R zu greifen?

    
___ answer13498914 ___

Ich bevorzuge %code% dafür:

%Vor%

Die Regex funktioniert so:

  • Suchen Sie nach Text in den Klammern - nicht nach Ihren echten Klammern, sondern nach meinem zusätzlichen Satz Klammern, d. h. %code%
  • Gibt das als Rückverweis zurück, %code%

Mit anderen Worten: Ersetzen Sie den gesamten Text in der Zeichenfolge durch die Zurück-Referenz

Wenn Sie %code% anstatt %code% verwenden möchten, tun Sie Folgendes:

%Vor%

Dies gibt einen Wert von 11 zurück, d. h. die Startposition des gefundenen Ausdrucks. Beachten Sie das Attribut %code% , das angibt, wie viele Zeichen gefunden wurden.

Sie können dies mit %code% :

extrahieren %Vor%

Und dann %code% verwenden, um die Zeichen zu extrahieren:

%Vor%     
___ answer13499594 ___

Hier ist ein etwas anderer Weg, mit Lookbehind / Ahead:

%Vor%

Der Unterschied zu Andries Antwort ist, dass dies auch funktioniert, um mehrere Zeichenfolgen in Klammern zu extrahieren. z.B.:

%Vor%

Gibt:

%Vor%     
___