Задать вопрос
@Utarzan123
backend

Как отсортировать строчку состоящую из цифр с разделителем?

есть массив строчек
10/22/300
10/21/300
9/5/5/6

нужно чтоб получилось

9/5/5/6
10/21/300
10/22/300


То есть сортировка должна быть по всем состоящим из подстроки данным. А вложенность может быть неограниченной.

Понятно, что для того чтобы получить эти подстроки нужно применить команду
$element = explode('/', $item);

Первый элемент, к примеру превратится в
[9,5,5,6]
  • Вопрос задан
  • 129 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Fernus
@Fernus
Техник - Механик :)
Чёт не понял...так не канает?

<?php

$ar = [
    '10/22/300',
    '10/21/300',
    '9/5/5/6'
    ];

natsort($ar);

print_r($ar);

/* RESULT

Array
(
    [2] => 9/5/5/6
    [1] => 10/21/300
    [0] => 10/22/300
)

*/
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
alexeyshi
@alexeyshi
Если я правильно понял задачу, то можно попробовать так:

$array = [
    '10/22/300',
    '10/21/300',
    '9/5/5/6'
];

usort($array, function($a, $b) {
    $a = array_sum(explode('/', $a));
    $b = array_sum(explode('/', $b));
    return ($a == $b ? 0 : ($a < $b ? -1 : 1));
});

print_r($array);


Идея состоит в том, что мы сортируем по сумме чисел, полученных из каждой строчки.

Но нужно потестировать на бОльшем количестве примеров.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽