我有一个多维数据库值数组。标题存储在语言文件中,所以我不能简单地按标题排序db查询。我必须遍历结果并根据类别的id从语言文件中获取标题。因此,我必须创建一个具有相应标题的自定义数组。
这是我的模特:
<?php
function retrieve(){
foreach($query_cats->result_array() as $cat){
$info[] = array(
'id' => $cat['id'],
'title' => $this->lang->line('cat_'.$cat['id']),
'slug' => $cat['slug'],
'icon' => $cat['icon']
);
}
return $info;
}
是否有一个php函数允许我按标题键的值对$ info数组进行排序?我不知道如何使用asort($ info)来实现这一点,因为数组更复杂。
答案 0 :(得分:1)
我不确定这是否是你想要的,但你可以在这个功能中进行更多的探讨 array_multisort() 或使用以下示例来创建自己的代码。
$title= array();
foreach ($info as $key => $row)
{
$title[$key] = $row['title'];
}
array_multisort($price, SORT_DESC, $info);
答案 1 :(得分:1)
您可以将usort与strcasecmp结合使用。我还建议在函数循环中进行简化:
function retrieve(){
foreach ($query_cats->result_array() as $cat) {
$cat['title'] = $this->lang->line('cat_'.$cat['id']);
$info[] = $cat;
}
usort($info, function($a, $b) {
return strcasecmp($a['title'], $b['title']);
});
return $info;
}