十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
是不是在查出来的已经排序过的数组中找到某个id?如果是,那么假如说现在有10条数据,已经排序完成, 我需要找到我的id是2的排在第几个?
成都创新互联成立于2013年,公司自成立以来始终致力于为企业提供官网建设、移动互联网业务开发(小程序开发、手机网站建设、APP应用开发等),并且包含互联网基础服务(域名、主机服务、企业邮箱、网络营销等)应用服务;以先进完善的建站体系及不断开拓创新的精神理念,帮助企业客户实现互联网业务,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞誉。
/**
*假如说现在是数组$data,里面有id是2的数据.那么,$id = 2.(我是按照从数据库中查出来的数据进行写的,数据库查出来的是二维数组)
*循环数组$data,判断id字段是2的值,如果相等,那么拿出该数组的下标,并+1(数组默认从0开始)
**/
$id = 2;
$key = '';
foreach ($data as $k = $v) {
if ($v['id'] == $id) {
$key = $k + 1;
}
}
var_dump($key);//这就是你需要的名次
foreach name="content" item="vo" key="key"
{$key}
/foreach
方法一,可以在查询的时候就按SORT排序。
方法二、用php数组排序函数对数据进行重新排序
希望可以帮到你
从你要输出的结果来看,你这样实现法不太科学,代码不高效,数据量少时还算说得过去,若上万数据的话,服务器会崩溃。建议你在数据库结构上进行改进,对于排序的字段设计可以采用人为可控制的数值,这样你要实现的话,一个sql语句搞定到数组后,你想输出哪种格式都是可以的了。你去参考下那些知名的CMS系统的数据库设计结构,我想你会受到启发的。
记得给分!!!
$newArr=array();
for($j=0;$jcount($arr);$j++){
$newArr[]=$arr[$j]['flag']
}
array_multisort($newArr,$arr);
print_r($arr)
sort() - 以升序对数组排序
rsort() - 以降序对数组排序
asort() - 根据值,以升序对关联数组进行排序
ksort() - 根据键,以升序对关联数组进行排序
arsort() - 根据值,以降序对关联数组进行排序
krsort() - 根据键,以降序对关联数组进行排序