Как отсортировать элемент массива по элементу строки на php?
Есть массив вида
$array = array('1211,1433,5454,4343','1211,1433,5454,5443','1211,1433,5454,1143');
Как его отсортировать по убыванию по числу после последней запятой?
То есть 4343,5443,1143?
Эти числа могут быть одинаковыми в некоторых строках.
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Для сортировки можно использовать функцию usort - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
Для нахождения последнего элемента в строке можно использовать strpos у которого для offset задавать отрицательное значение.
Собственно это всё, что нужно.
- Используем usort
- Для каждого сравниваемого значения (
aиb) находим вхождение последней запятой - Берём подстроку (от последней запятой) с помощью substr и переводим его в число (например через intval)
- Теперь осталось только сравнить эти числа и вернуть нужный результат из функции usort на основе сранвния