如何在foreach循环中按日期排序?

时间:2015-01-29 14:28:17

标签: php foreach

请有人可以提供帮助,我无法找到任何有关堆栈溢出的内容可以帮助我和我这是一个菜鸟,我想在ASC或DESC中按日期订购foreach循环,这是我的代码:

<?php foreach($all_weddings as $wedding_id): ?>
  <?php  echo '<div class="' . (++$count%5 ? "wedding_client_odd" : "wedding_client_even") . '">'; ?>
  <?php $wedding = new data($wedding_id); ?>
  <?php $all_images = data_helper::get_links($wedding->id,'image'); ?>
  <?php  $image = new data($all_images[0]); ?>
  <div class="wedding_image">
   <?php
     image_helper::display_image($image->id,176,140,'image_gallery_thumb rounded-corners');  
   ?>
  </div>
  <div class="wedding_content">
   <div class="content_height">
    <h2 class="grey"><?php echo $wedding->title; ?></h2>
   </div>
   <p class="grey"><?php echo date("j F Y", strtotime($wedding->date)); ?></p>
  </div>
 </div>
<?php endforeach; ?>

这是$all_weddings

的转储
array(32) { [0]=> string(4) "2012" [1]=> string(4) "2009" [2]=> string(4) "2007" [3]=> string(4) "2005" [4]=> string(4) "2002" [5]=> string(4) "2000" [6]=> string(4) "1998" [7]=> string(4) "1995" [8]=> string(4) "1993" [9]=> string(4) "1991" [10]=> string(4) "1989" [11]=> string(4) "1987" [12]=> string(4) "1985" [13]=> string(4) "1983" [14]=> string(4) "1981" [15]=> string(4) "1980" [16]=> string(4) "1978" [17]=> string(4) "1976" [18]=> string(4) "1974" [19]=> string(4) "1972" [20]=> string(4) "1970" [21]=> string(4) "1968" [22]=> string(4) "1966" [23]=> string(4) "1964" [24]=> string(4) "1962" [25]=> string(4) "1960" [26]=> string(4) "1958" [27]=> string(4) "1956" [28]=> string(4) "1954" [29]=> string(4) "1952" [30]=> string(4) "1945" [31]=> string(4) "1943" }

2 个答案:

答案 0 :(得分:0)

假设您从关系数据库中提取数据,则需要在SQL中对结果进行排序。

SELECT * FROM weddings ORDER BY date ASC;

你不能或不应该在循环中订购东西。您也可以在循环结果之前在PHP代码中对结果进行排序,但这是hackish,而不是最好的方法。从数据库中提取您希望订购的数据并完成。

答案 1 :(得分:0)

所以试试这样:

<?php
  sort($all_weddings);
  foreach($all_weddings as $wedding_id) { 
  echo '<div class="' . (++$count%5 ? "wedding_client_odd" : "wedding_client_even") . '">'; 
  $wedding = new data($wedding_id); 
  $all_images = data_helper::get_links($wedding->id,'image');
  $image = new data($all_images[0]); ?>
  <div class="wedding_image">
   <?php
     image_helper::display_image($image->id,176,140,'image_gallery_thumb rounded-corners');  
   ?>
  </div>
  <div class="wedding_content">
   <div class="content_height">
    <h2 class="grey"><?php echo $wedding->title; ?></h2>
   </div>
   <p class="grey"><?php echo date("j F Y", strtotime($wedding->date)); ?></p>
  </div>
 </div>
<?php } ?>