PHP数组循环问题, 数组是:

Array([0]=>Array([title]=>第一个[url]=>#[desc]=>这个第一个导航[s]=>3)[1]=>Array([title]=>资料[url... Array
(
[0] => Array
(
[title] => 第一个
[url] => #
[desc] => 这个第一个导航
[s] => 3
)

[1] => Array
(
[title] => 资料
[url] => #
[desc] => 殷海萨的资料,用于储存学习资料和记录信息
[s] => 2
)

[2] => Array
(
[title] => 视频
[url] =>#
[desc] => 殷海萨的视频,用于储存和播放视频
[s] => 3
)

)
把这个数组按照S的值 从小到大排序,
哥哥姐姐们帮忙啊
数组是网页中得导航列表,
但这个导航列表的数据有来自 自定义导航数据表的数据,
也有来自内部模块的数据,所以S(顺序值)会重复,
如果把S值做键,会丢数组,这个改怎么排序呀,
这个数组的来源是。
//列表查询方法,返回while数据表数组
function ehs_data_lists($dname,$table,$where){
$list_row=$this->ehs_db_select($dname,$table,$where);
while ($list_rows=mysql_fetch_assoc($list_row)){
$list[]=$list_rows;
};
return $list;
}
//顶部导航查询
function ehs_web_top(){

$mod=$this->ehs_data_lists('*', 'module', "ORDER BY s ASC");
$nav=$this->ehs_data_lists('*', 'navigation', "ORDER BY s ASC");
foreach ($nav as $vn){
$top[]=array('title'=>$vn['title'],'url'=>$vn['url'],'desc'=>$vn['desc'],'s'=>$vn['s']);
}
foreach ($mod as $vm){
$top[]=array('title'=>$vm['title'],'url'=>$this->ehs_module_re($vm['name']),
'desc'=>$vm['desc'],'s'=>$vm['s']);
}
return $top;
}
展开
 我来答
page7
2011-12-08 · TA获得超过240个赞
知道小有建树答主
回答量:222
采纳率:0%
帮助的人:257万
展开全部
不知道你的DB类支不支持SQL语句,这种查询,可以直接用SQL语句获取排序好的内容。
SELECT *
FROM ( SELECT * FROM `module` UNION ALL SELECT * FROM `navigation` ) tb
ORDER BY td.s asc;

如果不支持,那就麻烦点啦,合并数据之后。
定义一个排序方法
function sortS($a, $b){
if($a['s'] == $b['s']){
return 0;
}
return ($a['s'] < $b['s']) ? -1 : 1;
}
然后 usort($top, "sortS"); 就可以了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式