Я ищу пользовательскую функцию, которая будет уважать порядок массива и сортировать его по индексу «name». Функция strcasecmp() не понимает буквенно-цифровые значения, так как люди читают ее. Он считает, что «Яблоки 12» - это меньшая ценность, чем «Яблоки 5». Я попробовал этот метод, но не могу найти функцию для сравнения буквенно-цифровое значение:php sort многомерный массив по алфавитно-цифровому значению
$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'].'<br />';
}
Неожиданный результат из кода выше:
Apples
Apples 01
Apples 1
Apples 12
Apples 4
Apples 5
Результат я хотел достичь:
Apples
Apples 01
Apples 1
Apples 4
Apples 5
Apples 12
Любые идеи ?
Как я пропускал это? БЛАГОДАРЯ! – user1105430