gpt4 book ai didi

php - PHP 中的反转数组

转载 作者:行者123 更新时间:2023-11-29 11:19:19 24 4
gpt4 key购买 nike

如何反转数组的顺序:

Array
(
[message] => Text 2
[time] => 16:00:00
)
Array
(
[message] => Text 1
[time] => 15:00:00
)

订购:

Array
(
[message] => Text 1
[time] => 15:00:00
)
Array
(
[message] => Text 2
[time] => 16:00:00
)

我正在使用 php 和 mysql 构建一个聊天脚本,我只想扭转这一点。这样新消息就从底部开始。喜欢:

15:00 > Text 1
16:00 > Text 2
17:00 > Text 3
18:00 > Text 4
19:00 > Text 5
<input type='text'><submit>

我该怎么做? array_reverse() 和 rsort() 在这种情况下不起作用。

编辑:

我目前正在使用:

$results = $conn->query("SELECT message, datetime FROM chats ORDER BY datetime DESC LIMIT 3");
while ($row = mysqli_fetch_assoc($results)) {
print "<pre>";
print_r($row);
print "</pre>";

//echo '<div class="text">'.$row["message"].'</div>';
//echo '<div class="time">'.$row["datetime"].'</div>';
}

output:

Array
(
[message] => text 3
[datetime] => 2016-08-29 18:11:30
)
Array
(
[message] => text 2
[datetime] => 2016-08-29 18:11:29
)
Array
(
[message] => text 1
[datetime] => 2016-08-29 18:11:27
)

最佳答案

您可以通过几种方法来做到这一点,但是如果您使用 for() 循环来打印聊天消息,那么仅运行 for() 循环向后计数可能是最简单的。

使用 for()

例如,如果以数组元素计数的初始值减一来启动计数器循环,则可以按相反顺序打印数组中的每个元素;

<?php
/* You can replace this with the method you need for your program using SQL, I just used a static array as an example */

$messages = array(
array("message" => "Text 5", "time" => "19:00"),
array("message" => "Text 4", "time" => "18:00"),
array("message" => "Text 3", "time" => "17:00"),
array("message" => "Text 2", "time" => "16:00"),
array("message" => "Text 1", "time" => "15:00"),
);

// This can be used where you're outputting the chat messages
for($i = (count($messages) - 1); $i >= 0; $i--)
{
echo $messages[$i]["time"] . ": " . $messages[$i]["message"] . "<br />";
}

这给出了您想要的输出;

15:00: Text 1
16:00: Text 2
17:00: Text 3
18:00: Text 4
19:00: Text 5

使用 MySQL“DESC”

您还可以按照 tadman 的指示,使用他提供的查询通过 MySQL 按降序获取项目。如果您想通过忽略较旧的消息来限制聊天的大小,您还可以在查询中设置一个限制,如下所示(例如,限制为 5 条消息);

SELECT ... FROM ... ORDER BY id DESC LIMIT 5;

编辑:直到我发布后我才看到您使用了第二个答案。

关于php - PHP 中的反转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39211266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com