如何在PHP中对数组进行排序以维护顺序,但是根据值更改首先出现的数组

时间:2014-02-28 10:22:49

标签: php arrays sorting

这个问题很难说,但我会解释自己。我有一周中的几天和一个相应的图像,最终将在无序列表中回显到浏览器。

    array(7) {
      [0]=>
      array(2) {
        ["offer_day"]=>
        string(6) "Monday"
        ["offer_img"]=>
        string() "/imgpath.jpg"
      }
      [1]=>
      array(2) {
        ["offer_day"]=>
        string(7) "Tuesday"
        ["offer_img"]=>
        string(11) "/imgpath.jpg"
      }
      [2]=>
      array(2) {
        ["offer_day"]=>
        string(9) "Wednesday"
        ["offer_img"]=>
        string(11) "/imgpath.jpg"
      }
      [3]=>
      array(2) {
        ["offer_day"]=>
        string(8) "Thursday"
        ["offer_img"]=>
        string(11) "/imgpath.jpg"
      }
      [4]=>
      array(2) {
        ["offer_day"]=>
        string(6) "Friday"
        ["offer_img"]=>
        string(11) "/imgpath.jpg"
      }
      [5]=>
      array(2) {
        ["offer_day"]=>
        string(8) "Saturday"
        ["offer_img"]=>
        string(11) "/imgpath.jpg"
      }
      [6]=>
      array(2) {
        ["offer_day"]=>
        string(6) "Sunday"
        ["offer_img"]=>
        string(11) "/imgpath.jpg"
      }
    }

我希望数组根据它的日期进行排序。所以,如果是星期三,我希望回显的数组看起来像这样:

    <ul>
      <li>Wednesday<img src="/imgpath.jpg" alt="image"></li>
      <li>Thursday<img src="/imgpath.jpg" alt="image"></li>
      <li>Friday<img src="/imgpath.jpg" alt="image"></li>
      <li>Saturday<img src="/imgpath.jpg" alt="image"></li>
      <li>Sunday<img src="/imgpath.jpg" alt="image"></li>
      <li>Monday<img src="/imgpath.jpg" alt="image"></li>
      <li>Tuesday<img src="/imgpath.jpg" alt="image"></li>
    </ul>

如何根据特定值重新排序数组,例如$day = date("l");但保持一般顺序。任何建议将不胜感激。

由于

1 个答案:

答案 0 :(得分:2)

不要“排序”,切片:

$reordered = array_merge(array_slice($array, $offset), array_slice($array, 0, $offset));

根据$offset确定date('N')