Blog / 阅读

PHP在数组指定位置插入数据,其他数据自动向后排

by admin on 2014-07-22 10:34:54 in ,



举倒子:
在一个排行列表中,默认有以下元素,顺序有一定的依据,假设是按下载次数排列。
[php] view plaincopy
$rows = array(  
  array('name'=>'QQ2010'),  
  array('name'=>'QQ2009'),  
  array('name'=>'迅雷5'),  
  array('name'=>'飞信2010'),  
  array('name'=>'Kugoo2010'),  
  array('name'=>'TTplayer'),  
  array('name'=>'Firefox4.0'),  
  array('name'=>'美图秀秀'),  
  array('name'=>'360safe'),  
  array('name'=>'Chrome6')  
);  


如果有一个客户[可牛杀毒]想买花10元/元下我们第二个位置,可以大家想,直接把QQ2009替换掉不就完事了吗。不,那样的话用户体验并不好,明明QQ2009是一个下载次数比较多的软件,为什么在列表中却没有了呢。


其实我们真正的需求是把QQ2009以下的单元都往后推,腾出第二个位置来给[可牛杀毒]。如果页面中只能显示10个单元,那倒霉的就是[Chrome6]了,谁叫他们付费买我们的位置呢,呵呵。


再说到程序原理上来吧,PHP要实现这个需求,挺简单,用数组函数array_splice就可以了,具体用法参照PHP手册。


给一个完整的例子吧:


[php] view plaincopy
$rows = array(  
  array('name'=>'QQ2010',),  
  array('name'=>'QQ2009',),  
  array('name'=>'迅雷5',),  
  array('name'=>'飞信2010',),  
  array('name'=>'Kugoo2010',),  
  array('name'=>'TTplayer',),  
  array('name'=>'Firefox4.0',),  
  array('name'=>'美图秀秀',),  
  array('name'=>'360safe',),  
  array('name'=>'Chrome6',),  
);  
  
$pop = array(  
  '2'=>array('name'=>'可牛杀毒'),  
  '5'=>array('name'=>'金山词霸2010'),  
);  
  
foreach($pop as $key=>$p){  
  array_splice($rows, $key-1, 0, array($p));  
}  
  
var_dump($rows);  



写评论

相关文章

上一篇:PHP 字符串自动检测编码,字符串任意编码转换编码格式

下一篇:php中对二维数组某个元素进行排序方法

评论

写评论

* 必填.

分享

栏目

赞助商


热门文章

Tag 云