?php
成都创新互联是一家集网站建设,临漳企业网站建设,临漳品牌网站建设,网站定制,临漳网站建设报价,网络营销,网络优化,临漳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
//假设这个数组为 $arr ,建立一个目标数组 $res ,遍历$arr
$res = array();
foreach($arr as $v){
//先判断一下现在遍历的数组是否已经存在于目标数组
if(isset($res[$v['doctor_uid']])){
//已经存在的话需要判断 answer_num 的值和已存的值的大小
if($v['answer_num'] $res[$v['doctor_uid']]['answer_num']){
//当当前遍历的数组的 answer_num 值大于 $res 数组中已存的时候更新这个数组
$res[$v['doctor_uid']] = $v;
}
}
else{//当不存在的时候新增进去
$res[$v['doctor_uid']] = $v;
}
}
//经过上面的遍历 $res 即为去除重复uid的结果集,因为目前返回回来的是下表为uid的数组,此处改成下表从0开始
$res = array_value($res);
//可以再froeach中写一个if判断,将id为2的na值压入$arr数组如:
foreach($array $key = $value){
if($value['id']==2){
$arr = $value['na'];
}
}
这种方法应该能满足你的需求了吧
select *,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date from donku_articles
把sql语句改成上面这种,另外最好不要用fetch_row这种索引方式取值,可以用fetch_assoc这种关联的方式,
另外你的这个 貌似在while里面用不到foreach,,smarty引擎我没用过,按理说它的赋值 应该也不用while一个一个赋值,把$smarty-assign('art_recommend_row',$new_result);这个赋值拿到循环外面(smarty没用过,按照thinkphp yii2 这些框架来说 赋值给模板不需要放在循环里面),我按照我的想法把你的改了一下
include('includes/init.php');
$sql="SELECT *,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date FROM `donku_articles`";
$query=$mysql-query($sql);
$result=[];
while($row=$mysql-fetch_assoc($query)){//这里应该是关联的形式,从你的fetch_row我猜是应该是fetch_assoc
$result[]=$row;
}
//下面是赋值给模板
$smarty-assign('art_recommend_row',$result);
大概思路就是,先任意取第一个值,然后循环和剩下的所有值比较,如果相等,$i++;再取第二个不等于第一个的值的值,继续循环比较,记录循环次数。然后就OK了,主要就是循环、比较,记录循环次数