[英]PHP Search filter sort results alphabetically
我正在研究一個帶有搜索功能的Webcatalog。 我正在Joomla中使用軟件Eshop。 制造商有一個過濾器功能,但是這些結果不會按字母順序顯示。
我一直在尋找解決方案,但無法正常工作。 這是代碼:
<?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 }?>
誰能幫我?
您可以使用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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.