Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Prównanie wielu zmiennych każda z każdą
Forum PHP.pl > Forum > Przedszkole
piootras82
Witam,
mam formularz, w kórym wpisywane są numery kodów produktów.
W wyniku otrzymuje 20 zmiennych $a, $b ... -> $u

Chcę w IF- ie sprawdzić czy użytkownik nie wpisał 2x tego samego numeru.
Porównanie zmiennych każda z każdą nie wchodzi w gre bo jest tego za dużo

Czy jest jakiś prostrzy sposób porównania wszystkich zmiennych?
Szukałem na forum, ale w żadnym z tematów nie znalazłem odpowiedzi.
amii
Wsadź te zmienne do tablicy $input a potem dopisz to:
Funkcja zwraca false jeśli liczba się powtarza, jeśli nie to true. Argument $input to tablica

  1. function check($input) {
  2.  
  3. for ($i=0; $i<count($input); $i++) {
  4. $wartosc = $input[$i];
  5.  
  6. foreach($input as $key => $value) {
  7. if($key == $i) continue; //przy sprawdzaniu nie uwzględniamy tego samego indexu
  8. if($value == $wartosc) return false;
  9. }
  10. }
  11. return true;
  12. }
piootras82
do amii

Przepraszam za moją niewiedzę, ale w jaki sposób użyć tej funkcji żeby wyświetlić użytkownikowi, że wpisał 2x ten sam numer.

  1. $input = Array ($a,$b,$c,$d,$e,$f,$g,$h,$x,$j,$k,$l,$m,$n,$o,$p,$r,$s,$t,$u);
  2.  
  3. function check($input) {
  4.  
  5. for ($i=0; $i<count($input); $i++) {
  6. $wartosc = $input[$i];
  7.  
  8. foreach($input as $key => $value) {
  9. if($key == $i) continue; //przy sprawdzaniu nie uwzględniamy tego samego indexu
  10. if($value == $wartosc) return false;
  11. }
  12. }
  13. return true;
  14. }




do Wicepsik
Twój kod wyświetla mi na stronie kilkaset "Duplikat!". Wiesz może dlaczego?
Wicepsik
  1. $count = array_count_values($input);
  2. if(count($input) != count($count)) echo 'znaleziony duplikat';

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.