Как отсортировать элемент массива по элементу строки на php?

Есть массив вида

$array = array('1211,1433,5454,4343','1211,1433,5454,5443','1211,1433,5454,1143');

Как его отсортировать по убыванию по числу после последней запятой?

То есть 4343,5443,1143?

Эти числа могут быть одинаковыми в некоторых строках.


Ответы (1 шт):

Автор решения: Алексей Шиманский

Для сортировки можно использовать функцию usort - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

Для нахождения последнего элемента в строке можно использовать strpos у которого для offset задавать отрицательное значение.

Собственно это всё, что нужно.

  1. Используем usort
  2. Для каждого сравниваемого значения (a и b) находим вхождение последней запятой
  3. Берём подстроку (от последней запятой) с помощью substr и переводим его в число (например через intval)
  4. Теперь осталось только сравнить эти числа и вернуть нужный результат из функции usort на основе сранвния
→ Ссылка