2015-01-28 2 views
0

Я хочу, чтобы отсортировать строки ($ название) в алфавитном порядкеНеправильное использование функции php sort()?

оригинальный код:

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

Возвращает:
аукциона 95, 15 марта 2008
электронных торгов 153
Antike Münzen
В William Stancomb коллекция монет Черного моря
Münzen und Medaillen AG, Liste 366.
Коллекция R. Jameson
Monetele citilor дин Dobrogoea
[Untitled]
Выберите греческие монеты

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

Например:

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>'; 
} 

возвратов:
(точно такая же вещь)

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

ответ

2

Сортировка массива перед тем итерация через него

$array = $feed->get_items(); 
usort(
    $array, 
    function ($a, $b) { 
     return strcmp($a->get_title(), $b->get_title()); 
    } 
); 
foreach ($array as $item) { 
    ... 
} 
+0

Вы меня спасли, спасибо. У меня недостаточно очков репутации, чтобы сделать +1 – Lissy

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 – Lissy

Смежные вопросы