2012-11-24 13 views
8

Muszę sprawdzić, czy mój identyfikator istnieje w łańcuchu oddzielonym przecinkami.Sprawdź, czy istnieje wartość w łańcuchu oddzielonym przecinkami z PHP

Mój ciąg jest zapisany jako "1,2,3,4,10" w bazie danych.

Próbowałem

$HiddenProducts = array($sqlvalue); 

if (in_array(2, $HiddenProducts)) { 
    echo "Available"; 
} else { 
    echo "Not available"; 
} 

nie działa. Wszelkie rozwiązania proszę ...

+0

Aby utworzyć tablicę z łańcucha z wartościami oddzielonymi przecinkami, potrzebujesz 'explode()' zamiast 'array()'. –

+0

Dlaczego nie używasz funkcji bazy danych, aby to sprawdzić? I dlaczego jest przechowywany jako ciąg? – meze

+0

Najbardziej prawdopodobną metodą przechwytywania, jeśli wartość znajduje się w pliku CSV, jest: 'strpos (','. $ List. ',', ','. $ Item. ',')! == FALSE;' –

Odpowiedz

29

Użyj explode(), aby utworzyć tablicę części łańcuchów z ciągu znaków, dzieląc je przez pewien ogranicznik (w tym przypadku przecinek).

$HiddenProducts = explode(',',$sqlvalue); 
if (in_array(2, $HiddenProducts)) { 
    echo "Available"; 
} else { 
    echo "Not available"; 
} 
2

in_array() jest w rzeczywistości, co chcesz, ale tworzysz swoją tablicę nieprawidłowo.

Zakładając $sqlvalue = '1,2,3,4,10' ...

$hiddenProducts = explode(',', $sqlvalue); 

Następnie można użyć in_array().

1

pierwszym użyciem funkcji eksplodować przekonwertować ciąg oddzielonych przecinkami do tablicy

$HiddenProducts = explode(',',$sqlvalue); 

następnie użyć in_array funkcji, aby sprawdzić

if (in_array(2, $HiddenProducts)) 
    echo "Available"; 
else 
    echo "Not available"; 
1

Zamiast jedynie leczenie objawów, pozwól mi zaoferować inne podejście .

Powinieneś prawdopodobnie nie przechowywać informacji w tabeli w ten sposób. Powinna istnieć możliwość sprawdzenia bazy danych, jeśli jakiś produkt jest ukryty lub nie. W tym celu musisz odpowiednio znormalizować swoje dane.

Najwyraźniej masz gdzieś stół z produktami, a niektóre powinny być ukryte. Jeśli jest to właściwość true lub false, która należy do każdego produktu, możesz po prostu dodać ją do tabeli produktów jako nową kolumnę.

SELECT id FROM products WHERE id = 2 AND hidden = 1 

Jeśli hidden nie jest nieodłączną własnością swoich produktów, można również utworzyć tabelę pomocnika, który jest po prostu lista identyfikatorów produktów.

Wpis po prostu mówi, że produkt jest ukryty. Jeśli identyfikator jest nieobecny w tabeli, ukryty jest , a nie.

Powiązane problemy