private function LdapQuery::sortResults in Lightweight Directory Access Protocol (LDAP) 8.3
Same name and namespace in other branches
- 8.4 ldap_query/src/Plugin/views/query/LdapQuery.php \Drupal\ldap_query\Plugin\views\query\LdapQuery::sortResults()
Sort the results.
Parameters
array $results: Results to operate on.
Return value
array Result data.
1 call to LdapQuery::sortResults()
- LdapQuery::execute in ldap_query/
src/ Plugin/ views/ query/ LdapQuery.php - Execute the query.
File
- ldap_query/
src/ Plugin/ views/ query/ LdapQuery.php, line 136
Class
- LdapQuery
- Views query plugin for an SQL query.
Namespace
Drupal\ldap_query\Plugin\views\queryCode
private function sortResults(array $results) {
$parameters = [];
$orders = $this->orderby;
$set = [];
foreach ($orders as $orderCriterion) {
foreach ($results as $key => $row) {
// TODO: Could be improved by making the element index configurable.
$orderCriterion['data'][$key] = $row[$orderCriterion['field']][0];
$set[$key][$orderCriterion['field']] = $row[$orderCriterion['field']][0];
$set[$key]['index'] = $key;
}
$parameters[] = $orderCriterion['data'];
if ($orderCriterion['direction'] == 'ASC') {
$parameters[] = SORT_ASC;
}
else {
$parameters[] = SORT_DESC;
}
}
$parameters[] =& $set;
call_user_func_array('array_multisort', $parameters);
$processedResults = [];
foreach ($set as $row) {
$processedResults[] = $results[$row['index']];
}
return $processedResults;
}