更改数组的顺序

时间:2013-03-25 12:21:10

标签: php arrays wordpress

我在Wordpress中有一些代码可以获取附加到特定帖子的图像 它将该帖子的所有信息放入一个数组中,然后使用内置的Wordpress函数从中提取图像wp_get_attachment_image

然后我使用foreach循环在图像滑块中显示图像。 我遇到的问题是它将'image1'放在数组的第1位,并将'image2'放在数组的第0位。
所以它首先显示图像2。

这是我的代码。

    $args = array(
      'post_type' => 'attachment',
      'numberposts' => -1,
      'post_status' => null,
      'post_parent' => $post->ID
     );

    $attachments = get_posts( $args );          
    $images = array($attachments);
    echo '<div id="postSlider"><div class="slides_container">';
    if ( $attachments ) {
        foreach ( $attachments as $attachment ) {
        echo '<div>' . wp_get_attachment_image($attachment->ID, 'large') . '</div>';
        }

        echo '</div>';
        if(sizeof($attachments) > 1) {
            echo '<div class="sliderControls">
            <a href="#" class="sliderBtnPrev">Previous</a>
            <a href="#" class="sliderBtnNext">Next</a>
            <span class="sliderPagination">1 of 3</span>
            </div>';
        }
    }   
    echo '</div>';

根据我的阅读,foreach循环将保留数组的顺序。所以,我想我需要改变数组的顺序,以便循环首先看到'image1'(数组位置[1])。

我对阵列的了解有限,所以我不知道如何做到这一点......任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

如果您想以编程方式更改订单,请查看各种array sorting functions in PHP,尤其是

  • uasort() - 使用用户定义的比较函数对数组进行排序并维护索引关联
  • uksort() - 使用用户定义的比较函数按键对数组进行排序
  • usort() - 使用用户定义的比较函数按值对数组进行排序

但是对于wordpress checkout这个http://codex.wordpress.org/Template_Tags/get_posts

答案 1 :(得分:0)

如果您想按排序顺序显示图片maes,请在foreach之前使用sort

    sort($attachments);
    foreach ( $attachments as $attachment ) {
    echo '<div>' . wp_get_attachment_image($attachment->ID, 'large') . '</div>';
    }

参考:http://php.net/manual/en/function.sort.php