Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP: Merkwürdigkeiten bei SORT_NUMERIC

Empfohlene Antworten

Veröffentlicht

Ich habe mal folgendes Array mit Strings gefüllt und sie JustForFun mal mit dem Parameter SORT_NUMERIC sortiert.

<?php

$q = array(1=>'A',2=>'B',3=>'C',4=>'D',5=>'E',6=>'F',7=>'G',8=>'H',9=>'I',10=>'J',
11=>'K',12=>'L',13=>'M',14=>'N',15=>'O',16=>'P',17=>'Q',18=>'R',19=>'S',20=>'T'
);

asort($q,SORT_NUMERIC);
print_r($q)
?>[/PHP]

Die Ausgabe verwirrt mich jedoch sehr:

Array ( [b][11] => K[/b] [2] => B [3] => C [4] => D [5] => E [6] => F [7] => G [8] => H [9] => I [10] => J [b][1] => A [/b][12] => L [13] => M [14] => N [15] => O [16] => P [17] => Q [18] => R [19] => S [20] => T )

Wieso sortiert mir die Funktion die Werte so komisch. Hätte erwartet das er anhand der ASCII-Wertigkeiten sortiert und nich die [b]MITTE[/b] mit dem [b]ANFANG[/b] tauscht.

Wenn man Arrays kleiner gleich 8 hat wird übrigens immer immer der [b]ERSTE[/b] Wert im Array zum [b]LETZTEM[/b].

Kann hier irgendein Spezi das Mysterium aufklären oder zumindest ne Vermutung abgeben? Ist das ein Bug oder ein Feature?

Gruß

SteveBo:beagolisc

den gewünschten effekt solltest du mit folgendem code erzielen:


asort ($array);
[/PHP]

manual sagt:

Sorting type flags:

SORT_REGULAR - compare items normally

SORT_NUMERIC - compare items numerically

SORT_STRING - compare items as strings

Danke, aber das ist mir schon klar, wie ich mir diese "Strings" richtig sortieren könnte. Aber es ist nun mal sehr Merkwürdig das er bei "SORT_NUMERIC" überhaupt keine erkennbare Logik verfolgt.

Ich hätte vermutet, dass die Funktion A-Z und dann a-z sortiert oder Umgekehrt, weil er nach den dezimalen Werten in der ASCII-Tabelle geht. Aber leider sortiert er wider jeder mir ersichtlichen Logik. Oder ist das gut wenn man die Mitte/das Ende mit dem ersten Wert tauscht?

Folge: Meine Frage steht noch im Raum. Weiß jemand die Antwort?

Gruß

SteveBo:confused:

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.