2017-11-14 9 views
1

검색 기능이있는 약간의 웹 카탈로그에서 작업 중입니다. Joomla에서 소프트웨어 Eshop을 사용하고 있습니다. 제조업체에는 필터 기능이 있지만 이러한 결과는 사전 순으로 표시되지 않습니다.PHP 검색 결과 정렬 알파벳순으로

솔루션을 둘러 보았지만 제대로 작동하지 않습니다. 다음 코드입니다.

<?php 
if (!empty($filterData['manufacturer_ids'])){ 
    $manufacturerIds = $filterData['manufacturer_ids']; 
} 
else{ 
    $manufacturerIds = array(); 
} 

foreach ($manufacturers as $manufacturer){?> 
    <li> 
     <label class="checkbox"> 
      <input class="manufacturer" onclick="eshop_ajax_products_filter('manufacturer');" type="checkbox" name="manufacturer_ids[]" value="<?php echo $manufacturer->manufacturer_id; ?>" <?php if (in_array($manufacturer->manufacturer_id, $manufacturerIds)) echo 'checked="checked"'; ?>> 
      <?php echo $manufacturer->manufacturer_name; ?><span class="badge badge-info"><?php echo $manufacturer->number_products;?></span> 
     </label> 
    </li> 
<?php }?> 

아무도 도와 줄 수 있습니까?

This is the current view

+0

'sort' 함수를 사용해 보셨습니까? –

답변

0

당신은 sort 기능을 사용할 수 있습니다 내가 당신에게 다음을 제공하기 위해 SORT_STRING 선택적 매개 변수를 사용하는 것이 좋습니다 것입니다.

$manufacturers = sort($manufacturers, SORT_STRING); 

이 함수 배열을 정렬한다. 이 기능이 완료되면 요소가 낮은 값에서 높은 값으로 정렬됩니다.

...

SORT_STRING는 - 스트링

등의 항목과 비교

편집 :

데이터 구조를 확인한 후,이 오브젝트의 배열이며, 지정 정렬 기능을 필요로한다. 따라서 usort()을 사용해야합니다.

이 함수는 사용자가 입력 한 비교 함수를 사용하여 해당 값으로 배열을 정렬합니다. 정렬하려는 배열이 약간의 기준으로 으로 정렬되어야하는 경우이 함수를 사용해야합니다.

먼저 manufacturer_name 속성의 문자열을 비교하는 함수를 정의하십시오.

function cmp($a, $b) 
{ 
    return strcmp($a->manufacturer_name, $b->manufacturer_name); 
} 

usort($manufacturers , "cmp"); 
+0

이 코드를 정확히 어디에 추가해야합니까? 내가 foreach ($ 제조 업체 $ 제조 업체) 위에 추가했지만 그때 나는 페이지에 오류가 발생 – Niels

+0

예, 위, 그리고 어떤 오류? – kchason

+0

웹 사이트 링크를 방문하면 어떤 일이 일어나는 지 확인할 수 있습니다 – Niels