En PHP Array Sorter Problemet med tallet null

PHP vil vanligvis fungere som forventet når du sorterer verdiene inkludert numerisk null, sortere det som mindre enn én og større enn eventuelle negative tall. De vanligste feilkilder når du arbeider med null verdier stammer fra hvordan de brukes i matriser, eller forvirrende en numerisk verdi enn null med teksten "0" verdi.

Typer Arrays

En matrise er en enkelt variabel som inneholder en liste over verdier. PHP har to typer matriser som er forskjellige i måten hver er referert av array-kommandoer. En matrise kan ha en numerisk indeks, hvor hvert element i matrisen er tilordnet et sekvensielt nummer, eller den kan bruke en nøkkel indeksen som et søkeord er tilordnet hvert element. For eksempel, begge disse er gyldige PHP arrays:

$ Familie = array ( "John", "Mary", "Dick", "Jane")

$ Familie = array ( "far" => "John", "mor" => "Mary", "sønn" => "Dick", "datter" => "Jane")

Zero-Based Indexes

PHP benytter en null basis for indeksering matrise, som er teknisk måte å si at i stedet for å telle elementer som starter med en, blir arrays telles og starter med null. Sunn fornuft kan tyde på at $ familien [1] er "John", men dette vil resultere i "Mary". $ Familie [0] er den numeriske referanse å bruke for å gå tilbake "John". Zero basert indeksering forårsaker ofte programmeringsfeil når en basert indeksering forventes av programmerer, men dette vil sjelden føre til sortering feil siden null sorteres før en som generelt vil bli forventet.

String og Numerisk Zero

En mer sannsynlig årsak til sortering feil som involverer null blande tekst og numerisk verdityper. PHP skiller mellom teksten "0" og tallet 0. Dette skiller seg fra andre programmeringsspråk som bruker automatisk tvang, der språket forsøker å konvertere tekst som inneholder numeriske data til tall ved programmering syntaks blander datatyper. PHP dokumentasjon sier at sorteringsrutiner vil handle uberegnelig når datatyper er blandet, så bekrefter at alle variabler som du forventer å holde numeriske data faktisk gjøre det.

Typer Sortering

PHP har forskjellige sorter funksjoner for sortering arrays av innholdet i matrisen, eller ved søkeord tildelt array-elementer. PHP tillater tildeling av søkeordet "0" som en navngitt element, som kan avvike fra element 0 av tabellen. Hvis du sorterer nøklene i en matrise, sjekk nøklene så vel som matrisedata for blandede datatyper.