php - 如何按发送日期订购短信
问题描述
我正在使用 twilio 在我的网站上的用户之间发送和接收消息。我可以成功显示入站和发出的短信。
我像这样检索我的消息。
$receivedMessages = $twilio->messages
->read(array(
"from" => $user->phone,
"to" => $siteNumber,
)
);
$sentMessages = $twilio->messages
->read(array(
"from" => $siteNumber,
"to" => $user->phone,
)
);
$combinedMessages = array_merge($receivedMessages, $sentMessages);
我将 combniedmessage 变量传递给我的视图,然后遍历它们并将不同的样式应用于入站和传出消息。
<ul class="text-container incoming-container">
@foreach($combinedMessages as $message)
<li class="text-message
@if($message->direction == 'inbound')
incoming-text
@elseif($message->direction == 'outbound-api')
outgoing-text
@endif">
<span>
{{$message->body }}
</span></br>
<small>
{{ (string)$message->dateCreated->format('d-m-Y H:i:s')}}
</small>
</li>
@endforeach
</ul>
首先显示入站,然后显示出站。无论方向如何,我如何按发送时间的顺序显示它们。
解决方案
您需要$combinedMessages
使用自定义排序函数对数组进行排序,该函数将按对象的消息日期进行排序。
在此处查看 uasort() 命令:http: //php.net/manual/en/function.uasort.php
<?php
// Sample Comparison function
function cmp($a, $b) {
if ( $a->message_timestamp == $b->message_timestamp ) {
return 0;
}
return ( $a->message_timestamp < $b->message_timestamp ) ? -1 : 1;
}
uasort( $combinedMessages, 'cmp' );
?>
推荐阅读
- r - 考虑数据中的连续值
- javascript - 如何设置事件属性 pageX/Y
- ajax - 使用 AJAX 获取数据并将其保存为变量
- c# - C# MVC HttpGet 向路由添加参数
- jasper-reports - Jaspersoft:根据参数更改文本字段边框
- php - PHP - 过滤 UTF-8 字符串以仅允许基本字符集和一些标点符号
- python-2.7 - 使用 GitLab 对终端进行身份验证
- powershell - 删除 CSV 中的所有重复条目
- python - 如何根据邻居之间的给定标准将数组拆分为几个较小的数组
- flutter - 我正在尝试通过单击按钮打开另一个活动,但它显示了一些错误