Guten Abend,
ich stoße auf ein kleines Problem beim Sortieren eines multidimensionalen Arrays.
Die Sortierung ASC/DESC funktioniert hervorragend bis Sonderzeichen erscheinen.
Array Aufbau:
PHP-Code:
array (size=75)
40 =>
array (size=5)
0 => string '55' (length=2)
1 => string '5.186.*' (length=17)
2 => string '109' (length=3)
3 => string '***' (length=32)
4 => string 'Abdul' (length=5)
9 =>
array (size=5)
0 => string '15' (length=2)
1 => string '188.32.*' (length=18)
2 => string '79' (length=2)
3 => string '***' (length=32)
4 => string 'Aganemnum' (length=9)
12 =>
array (size=5)
0 => string '56' (length=2)
1 => string '84.129.*' (length=19)
2 => string '109' (length=3)
3 => string '***' (length=32)
4 => string 'Alex (2)' (length=8)
3 => ...
Value[4] ist der String nach dem sortiert werden soll.
Ausgegeben wird aber folgendes:
https://abload.de/img/error_01fhzdv.png
https://abload.de/img/error_02ukllr.png
Sobald Sonderzeichen im Name auftreten beginnt die komplette Sortierung
erneut. Wie man im Bild sieht beginnt sie nach dem [ ] wieder von A nach Z.
PHP-Code:
usort($players, function($a, $b)
{
preg_replace("/[^0-9a-zA-Z]/", "", $a);
preg_replace("/[^0-9a-zA-Z]/", "", $b);
if($_SESSION['tmp_sort_player'] == 1) return $a[4] <=> $b[4];
elseif($_SESSION['tmp_sort_player'] == 2) return $b[4] <=> $a[4];
});
Wie kann ich das denn verhindern?
Ich filtere alle Zeichen raus und trotzdem ist die Sortierung fehlerhaft?!