Thema: usort - Array
Einzelnen Beitrag anzeigen
  #1  
Alt 05.08.2016, 21:17:12
Fake Fake ist offline
Anfänger
 
Registriert seit: May 2016
Alter: 30
Beiträge: 33
usort - Array

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)
      
=> string '55' (length=2)
      
=> string '5.186.*' (length=17)
      
=> string '109' (length=3)
      
=> string '***' (length=32)
      
=> string 'Abdul' (length=5)
  
=> 
    array (
size=5)
      
=> string '15' (length=2)
      
=> string '188.32.*' (length=18)
      
=> string '79' (length=2)
      
=> string '***' (length=32)
      
=> string 'Aganemnum' (length=9)
  
12 => 
    array (
size=5)
      
=> string '56' (length=2)
      
=> string '84.129.*' (length=19)
      
=> string '109' (length=3)
      
=> string '***' (length=32)
      
=> string 'Alex (2)' (length=8)
  
=> ... 
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?!
Mit Zitat antworten