Неправильное использование функции php sort ()?

0

Я хочу сортировать строку ($ title) в алфавитном порядке

исходный код:

  foreach ($feed->get_items() as $item) {
    $title = $item->get_title();
    echo $title.'</br>';
    }

Возвращает:
Аукцион 95, 15. Март 2008 г.
Электронный аукцион 153
Antike Münzen
Коллекция монет Уильяма Стэнкомба в Черноморском регионе
Münzen und Medaillen AG, Liste 366.
Коллекция Р. Джеймсон
Monetele citilor din Dobrogoea
[Без названия]
Выберите Греческие монеты

Я решил отсортировать строку, я должен превратить укус в массив, отсортировать массив и вернуть его обратно в строку.

Например:

foreach ($feed->get_items() as $item) {
//added '#' so I could it explode it based on something
$title = $item->get_title().'#'; 
$titleArray = explode("#",$title);
sort($titleArray);
echo implode('#', $titleArray).'</br>';
 }

Возвращает:
(то же самое)

Я пытался много разных версий превратить его в массив и попытаться отсортировать массив безрезультатно. Я (очевидно) новичок, которому нужна помощь. Любые намеки будут оценены.

Теги:
arrays
sorting

2 ответа

2
Лучший ответ

Сортировка массива перед его повторением

$array = $feed->get_items();
usort(
    $array,
    function ($a, $b) {
        return strcmp($a->get_title(), $b->get_title());
    }
);
foreach ($array as $item) {
    ...
}
  • 0
    Ты спас меня, спасибо. У меня недостаточно очков репутации, чтобы сделать +1
2

Использовать usort

$array = $feed->get_items();
usort($array, function($a, $b) {
    if ($a->get_title() == $b->get_title()) {
        return 0;
    }
    return ($a->get_title() < $b->get_title()) ? -1 : 1;
});

$array содержит отсортированные элементы.

  • 0
    Тоже замечательно, но у меня недостаточно очков репутации, чтобы сделать +1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню