by Anonymous » 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
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]$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
[/code]