如何按特定顺序洗牌?

时间:2011-11-01 07:30:04

标签: php mysql

我正在一个网站上工作,我有两种类型的优惠,热卖和最优惠。我有5个热卖和5个最佳报价。首先是1个热卖,然后会有1个最好的报价,依此类推。现在1刷新后第1次热卖将取代第2次热卖,2次更换第3次热卖,3次应更换第4次,第4次更换5次热卖和5次热卖应更换1次热卖。这也应该是同样的最佳报价。

就像

第一次热卖

第一个最佳优惠

第二热卖

第二次最佳优惠

........

........

........

........

第五热卖

第五名最佳优惠

刷新后它应该......

第五热卖

第五次最佳优惠

第一热门优惠

第一个最佳优惠

.......

........

........

.......

第四热卖

第四个最佳优惠

请帮帮我。我这样做太麻烦了。

2 个答案:

答案 0 :(得分:0)

这是您正在寻找的功能:

http://php.net/manual/en/function.usort.php

您可以定义订购条件,以便使用usort订购数组。

答案 1 :(得分:0)

由于我不清楚你的背景,我只是假设:

  1. 您已经有2个数组存储热门优惠和最佳优惠。
  2. 这两个数组已按“热”和“最佳”排序。
  3. 所以,

    // Normally, print hot offers and best offers 1 by 1,
    // starting from the first offers.
    for ($i = 0; $i < count($i); $i++) {
        echo $hotOffer[$i] . "<br />";
        echo $bestOffer[$i] . "<br />";
    }
    
    // In the case of shuffling, print the last offers first,
    // then start printing from the second offers to the second last offers.
    $lastRecord = count($i)-1;
    echo $hotOffer[$lastRecord] . "<br />";
    echo $bestOffer[$lastRecord] . "<br />";
    for ($i = 1; $i < $lastRecord; $i++) {
        echo $hotOffer[$i] . "<br />";
        echo $bestOffer[$i] . "<br />";
    }