PHP / MYSQL -Need帮助按字母顺序排序数组

时间:2016-05-27 18:35:06

标签: php mysql arrays sorting

我需要以下代码按字母顺序按升序(A-Z)列出场地名称。现在它正在按照数据库中列出的时间对场地进行排序。我在哪里调整?

     <?php for($ii = 1; $ii <= 10; $ii++): ?>
    <div class="bor_t menu_option_container"<?php if($ii != 1): ?> style="display: none;"<?php endif; ?>>
    <div class="mb20">
    <label class="ros_head alt_label" for="venue_option<?php echo $ii; ?>_note_field">VENUE OPTION <?php echo $ii; ?></label>
       <?php
            $venue_room_options = array();
            $venue_room_options["null"] = "Select a venue";

                            foreach($rooms as $room) {
                                $venue_room_options[$room->VenueID . '_' . 
                                $room->RoomID] = $room->VenueName . " - " . $room->RoomName;

                            }

                            echo form_dropdown('venue_selection' . $ii, $venue_room_options, ( set_value('venue_selection' . $ii) ) ? set_value('venue_selection' . $ii) : '1', 'id=""', array("id"=>"venue_option" . $ii));
                        ?>
                    </div> <!-- /.mb20 -->`

3 个答案:

答案 0 :(得分:2)

您可以使用php数组函数asort()对数组进行排序。

在这里添加排序功能

<?php 
// your code 

 asort($venue_room_options);  // new line added
 echo form_dropdown('venue_selection' . $ii, $venue_room_options, ( set_value('venue_selection' . $ii) ) ? set_value('venue_selection' . $ii) : '1', 'id=""', array("id"=>"venue_option" . $ii));

 ....
?>

这将按场地名称 - roomName按字母顺序排序

答案 1 :(得分:1)

在foreach循环上方,插入以下代码:

sort($rooms);

有关详细信息,请参阅:http://php.net/manual/en/function.sort.php

答案 2 :(得分:0)

如果要维护密钥关联,请使用函数asort,如

<?php
...
asort($venue_room_options);
echo form_dropdown('venue_selection' . $ii, $venue_room_options, ( set_value('venue_selection' . $ii) ) ? set_value('venue_selection' . $ii) : '1', 'id=""', array("id"=>"venue_option" . $ii));
...
?>

有许多PHP函数可用于数组排序: http://php.net/manual/en/array.sorting.php