我正在使用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>
首先显示入站,然后显示出站。无论如何发送,我如何按发送时间的顺序显示它们。
答案 0 :(得分:1)
您需要做的是使用自定义排序函数对$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' );
?>