✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Dzielenie ciągów i liczb całkowitych w PHP

50

Praca z ciągami, liczbami i wyrażeniami regularnymi w PHP jest stosunkowo łatwa, biorąc pod uwagę ogromną liczbę funkcji, jakie zapewnia język.

Zdarzają się jednak sytuacje, w których ustalenie, jak podzielić na pewne kryteria, może nie być od razu jasne lub może być jasne, co musisz zrobić, ale nie jak najlepiej to zrobić.

Zdjęcie autorstwa Agê Barros na Unsplash

Załóżmy na przykład, że masz ciąg złożony z liczb i cyfr. W tym poście załóżmy, że dany ciąg:

  • obejmuje godziny i minuty,
  • gdy minuty są w 60,
  • ciąg powinien zwiększać wartość godzin o jeden
  • wartość minut jest resetowana do zera.

Przykładowy problematyczny ciąg może mieć postać T3H60M. Jak więc możemy podzielić łańcuch na łańcuchy i liczby całkowite i odpowiednio go przebudować?

W tym przypadku przydatne są trzy rzeczy. W dowolnej kolejności:

A kolejność, w jakiej operacje użycia każdego z powyższych przebiegają mniej więcej tak:

  1. użyj wyrażenia regularnego, aby znaleźć wszystkie cyfry w ciągu,
  2. usuń wszystko oprócz cyfr w tablicy
  3. jeśli druga cyfra to 60, to ustaw ją na zero
  4. zwiększyć pierwszy indeks tablicy o jeden
  5. odbuduj ciąg.

Gdyby powyższe kroki zostały przekonwertowane na kod, może to wyglądać tak:

Zauważ, że decyduję się na użycie array_filter, aby usunąć zduplikowane wartości i użyj array_values, aby wyczyścić tablicę do zaledwie dwóch wpisów, z których pierwszy to godzina, a drugi minuta.

Następnie określam wartość każdego z indeksów tablicy (i pamiętaj, że są to łańcuchy, więc będziesz musiał rzucić je jako liczby całkowite, aby odpowiednio zwiększyć ich wartość.

Na koniec buduję ciąg tak, jak (i ​​jeśli) jest to potrzebne.

Jasne, to trochę niszowy przypadek, ale rozwiązanie można bardziej uogólnić w oparciu o własne potrzeby.

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów