Попробуйте взглянуть на эту документацию .
Поскольку вы пытаетесь отсортировать определенную часть значения, вам нужно написать свой собственный компаратор и, следовательно, единственный методдоступна функция usort .
Функция uksort принимает два атрибута: массив и имя метода, которые вы хотите использовать для сравнения.Затем вы пишете этот метод, который принимает два значения в качестве параметров и возвращает значение true, равное false, в зависимости от того, больше он или меньше.
Следовательно, вам нужно подстроковать входящие значения, чтобы сравнивать только числа.
Следующий пример кода, кажется, работает
function cmp($a, $b)
{
$a = substr($a, -1);
$b = substr($b, -1);
return $a >= $b;
}
$array = array(
'list[P] = 1',
'list[A] = 1',
'list[F] = 2',
'list[B] = 1'
);
usort($array, "cmp");
var_dump($array);
Тот же кодтолько с использованием анонимной функции PHP:
$array = array(
'list[P] = 1',
'list[A] = 1',
'list[F] = 2',
'list[B] = 1'
);
usort(
$array,
function ($a, $b){
$a = substr($a, -1);
$b = substr($b, -1);
return $a >= $b;
}
);
var_dump($array);