日期:2014-05-17  浏览次数:20524 次

php数组foreach出来如何控制里面的顺序?
<?php
         /*查询关键字5个宝贝,按照热销降序排列*/
         $items = $itemManager->queryByKeyword(" ","hotsell",5);
         foreach($items as $i=>$item){
              echo "宝贝标题:". $item->title;
         }
    ?>


这是淘宝的根据关键字查询宝贝的接口,foreach出来是5个宝贝的标题;
比如foreach出来宝贝的顺序是

1 2 3 4 5 

然后我分别再foreach,对应的宝贝顺序是:
5 1 2 3 4

继续foreach ,对应的宝贝顺序是:

4 5 1 2 3

继续foreach ,对应的宝贝顺序是:

3 4 5 1 2

最后一次 foreach  ,对应的宝贝顺序是:

2 3 4 5 1


这个可以这么实现?

------解决方案--------------------
引用:
你 再foreach 是在同一个程序里吗?


我觉得这个问题要再延伸一下:
是同一个浏览者访问时执行多次foreach,还是不同浏览者访问同一个php期望foreach得到不同的顺序?
后者比较麻烦
------解决方案--------------------
我也是没理解他的需求,只是想到可能期望展示商品不同的人不同顺序,避免某些商品总是排在前面,但也不想用随机顺序这种需求——偶N年前遇到这么一个客户有这样需求
------解决方案--------------------
$items = array(1,2,3,4,5);

foreach($items as $v) echo $v;
echo '<br>';

$items[] = array_shift($items); 
foreach($items as $v) echo $v;
echo '<br>';

$items[] = array_shift($items); 
foreach($items as $v) echo $v;
echo '<br>';

你动动手就知道了