无法获取PHP数组以反向显示其内容

时间:2015-01-31 10:27:58

标签: php arrays

我花了很多时间查看方法来执行此操作并且功能却无法将内容反向显示到屏幕上。

我想在列表顶部的博客中显示最新的条目。所以这就是我到目前为止所拥有的但是数组似乎没有反转,而且while循环也没有显示我想要的元素(我只使用print_r和var_dump进行调试。

<body class="body">

<ul>

<?php

include 'config.php';
include 'opendb.php';

$sql = 'SELECT post_id AS "id", post_title AS "title", post_datetime AS "datetime" FROM posts WHERE post_id IS NOT NULL';
$res = mysqli_query($conn, $sql);


while (($post = $res->fetch_assoc())){
    echo current($post);
}

array_reverse_keys($post);

foreach ($post as $value) {
    print_r($value);
}

while ($post) {
    ?>
    <li>
    <?php
    if (isset($post)) { 
        ?>  
        <a href="#" data-id="<?php echo $post['id'] ?>">
        <?php echo $post['title']?></a>
        <?php
    }
    ?>
    </li>

    <?php
} 
?> 
</ul> 

<?php
$conn->close();
?>

</body>
</html>

被调用的函数读取:

<?php 
    function array_reverse_keys($ar){ 
      return array_reverse(array_reverse($ar,true),false); 
    }
?>

有人可以帮忙吗?

亲切的问候,

标记

3 个答案:

答案 0 :(得分:1)

您的函数正在返回新数组,但在调用它时您没有使用返回的值。它应该是:

$post = array_reverse_keys($post);

答案 1 :(得分:0)

更改此行

array_reverse_keys($post);

$post = array_reverse_keys($post);

答案 2 :(得分:0)

更改sql add order by子句 例如:

$sql="SELECT post_id AS "id", post_title AS "title", post_datetime AS "datetime" FROM posts WHERE post_id IS NOT NULL order by id DESC";