✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Dela strängar och heltal i PHP

16

Att arbeta med strängar, siffror och reguljära uttryck i PHP är relativt enkelt med tanke på det stora antalet funktioner som språket tillhandahåller.

Det finns dock tillfällen då det kanske inte är omedelbart tydligt att ta reda på hur man delar på vissa kriterier, eller det kan vara tydligt vad du behöver göra men inte hur du bäst gör det.

Foto av Agê Barros på Unsplash

Låt oss till exempel säga att du har en sträng som är blandad med både siffror och siffror. För det här inlägget, låt oss säga att en given sträng:

  • inkluderar timmar och minuter,
  • när minuterna är på 60,
  • strängen bör öka värdet på timmarna med en
  • värdet på minuterna nollställs.

Ett exempel på en problematisk sträng kan då vara av formen T3H60M. Hur kan vi då dela upp strängen i strängar och heltal och återuppbygga den ordentligt?

I det här fallet är det tre saker som jag har funnit användbara. I ingen bestämd ordning:

Och ordningen i vilken operationerna för att använda vart och ett av ovanstående går ungefär så här:

  1. använd ett reguljärt uttryck för att hitta alla siffror i strängen,
  2. ta bort allt utom siffrorna i arrayen
  3. om den andra siffran är 60, sätt den lika med noll
  4. öka det första indexet i arrayen med ett
  5. bygga om strängen.

Om stegen ovan konverterades till kod kan det vara så här det skulle se ut:

Observera att jag väljer att använda array_filter för att ta bort dubbletter av värden och använda array_values ​​för att rensa upp arrayen till bara två poster, varav den första är timmen, den andra är minuten.

Efter det bestämmer jag värdet på vart och ett av indexen i arrayen (och kom ihåg att de är strängar så du måste kasta dem som heltal för att öka deras värde.

Slutligen bygger jag strängen som (och om) behövs.

Visst, det här är lite av ett nischfall, men lösningen kan vara mer generaliserad utifrån dina egna behov.

Inspelningskälla: tommcfarlin.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer