PHP — usort() с частичной чувствительностью к региструPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP — usort() с частичной чувствительностью к регистру

Сообщение Anonymous »

У меня есть следующие элементы массива:

Код: Выделить всё

[{
first_name: 'Rebecca'
}, {

first_name: 'amy'
}, {
first_name: 'Amy'
}, {

first_name: 'stacy'
}]
Я хочу, чтобы массив был отсортирован в алфавитном порядке в соответствии со свойством first_name. В случае коллизии, когда свойства first_name совпадают (т. е. Эми и Эми), я хочу, чтобы значение с заглавной буквы было первым.В приведенном выше массиве отсортированные значения должны быть следующими:

Код: Выделить всё

[{
first_name: 'Amy'
}, {

first_name: 'amy'
}, {
first_name: 'Rebecca'
}, {

first_name: 'stacy'
}]
Это текущий пользовательский метод usort(), который я использую:

Код: Выделить всё

usort($users, function($a, $b){
$first_name_compare = strcasecmp($a['first_name'], $b['first_name']);
return $first_name_compare;
});

Код: Выделить всё

strcasecmp()
предположительно нечувствителен к регистру, но я заметил, что это противоречиво. В приведенном выше примере массива strcasecmp() иногда возвращает amy раньше Amy и наоборот.
Что нужно добавить для strcasecmp() в этом случае использования?

Подробнее здесь: https://stackoverflow.com/questions/783 ... ensitivity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»