2012-06-16 9 views
-1

Можно создать дубликат:
How should I sort this array by key with usort?список Php быть sortet по алфавиту

Я попытался следующие много подсказок, чтобы отсортировать список в алфавитном порядке по этой части кода, не повезло.

<?php 
foreach ($this->link_items as &$item) : 
?> 
<li> 
<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid)); ?>"> 
      <?php echo $item->title; ?></a> 
</li> 
<?php endforeach; ?> 

Мне нужен этот список для сортировки перед его выходом.

+1

[спросить] раздел домашнего задания. –

+0

* (совет) * [Не использовать ссылки] (http://schlueters.de/blog/archives/125-Do-not-use-PHP-references.html) – Gordon

+0

Возможное решение: http: //codepad.viper -7.com/2KTIFv – Gordon

ответ

0
sort($this->link_items); 

Это будет сортировать значения по их значению. Для сортировки по ключу используйте ksort.

+0

'$ link_items' - это объекты, поэтому это не будет работать. OP должен использовать 'usort' и сравнивать названия элементов. – Gordon

+0

Он не упоминает об этом в своем вопросе. Я работал с информацией, которую он предоставил. Действительно ли это требует понижения? –

+0

. Из заданного вопроса достаточно очевидно, что OP сначала выполняет 'foreach ($ this-> link_items as & $ item)', а затем обращается к '$ item-> title' и другим свойствам. Что же касается dv, то, технически, ответ неправильный, так что да, но это больше предназначено, чтобы побудить вас исправить вопрос (не наказывать вас). – Gordon

-1

ПРИМЕНЕНИЕ:

$sorted_array = array_multisort($this->link_items, SORT_ASC); 
<?php 
foreach ($sorted_array as &$item) : 
?> 
<li> 
<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($item->slug, $item->catid)); ?>"> 
      <?php echo $item->title; ?></a> 
</li> 
<?php endforeach; ?> 
+0

'array_multisort' возвращает логическое значение. даже если он вернет отсортированный массив, результат, скорее всего, будет неправильным, поскольку объекты имеют несколько свойств. – Gordon