Sortieren Sie natürlich die Zeilen eines 2D -Arrays nach einer Spalte alphanumerischer Werte
Posted: 16 Feb 2025, 14:22
Ich suche nach einer benutzerdefinierten Funktion, die die Reihenfolge des Arrays respektiert und sie nach der Schlüsselschlüssel "Name" sortiert. 'StrCasecmp ()' hat die alphanuerischen Werte nicht versteht, wie Menschen sie lesen würden. Es hält 'Äpfel 12' ein geringer Wert als 'Äpfel 5'. Ich habe diese Methode ausprobiert, kann aber keine Funktion finden, um den alphanumerischen Wert zu vergleichen: < /p>
Code: Select all
$array = array(
0 => array(
'id' => 2,
'type' => 'Apples',
'name' => 'Apples 5',
),
1 => array(
'id' => 3,
'type' => 'Grapes',
'name' => 'Apples',
),
2 => array(
'id' => 4,
'type' => 'Apples',
'name' => 'Apples 4',
),
3 => array(
'id' => 5,
'type' => 'Grapes',
'name' => 'Apples 01',
),
4 => array(
'id' => 6,
'type' => 'Apples',
'name' => 'Apples 1',
),
5 => array(
'id' => 7,
'type' => 'Grapes',
'name' => 'Apples 12',
)
);
uasort($array, function($a, $b) {
return strcasecmp($a['name'], $b['name']);
});
foreach($array as $single) {
echo $single['name'].'
';
}
< /code>
Unerwartetes Ergebnis aus dem obigen Code: < /p>
Apples
Apples 01
Apples 1
Apples 12
Apples 4
Apples 5
< /code>
Das Ergebnis, das ich erreichen wollte: < /p>
Apples
Apples 01
Apples 1
Apples 4
Apples 5
Apples 12