当前位置: 首页>>代码示例>>PHP>>正文


PHP F::Array_SortByKeysArray方法代码示例

本文整理汇总了PHP中F::Array_SortByKeysArray方法的典型用法代码示例。如果您正苦于以下问题:PHP F::Array_SortByKeysArray方法的具体用法?PHP F::Array_SortByKeysArray怎么用?PHP F::Array_SortByKeysArray使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在F的用法示例。


在下文中一共展示了F::Array_SortByKeysArray方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: GetTopicsQuestionVoteByArray

 /**
  * Получить список голосований в топике-опросе по списку ID
  *
  * @param array $aTopicsId    - Список ID топиков
  * @param int   $iUserId      - ID пользователя
  *
  * @return array
  */
 public function GetTopicsQuestionVoteByArray($aTopicsId, $iUserId)
 {
     if (!$aTopicsId) {
         return array();
     }
     if (Config::Get('sys.cache.solid')) {
         return $this->GetTopicsQuestionVoteByArraySolid($aTopicsId, $iUserId);
     }
     if (!is_array($aTopicsId)) {
         $aTopicsId = array($aTopicsId);
     }
     $aTopicsId = array_unique($aTopicsId);
     $aTopicsQuestionVote = array();
     $aTopicIdNotNeedQuery = array();
     // * Делаем мульти-запрос к кешу
     $aCacheKeys = F::Array_ChangeValues($aTopicsId, 'topic_question_vote_', '_' . $iUserId);
     if (false !== ($data = E::ModuleCache()->Get($aCacheKeys))) {
         // * проверяем что досталось из кеша
         foreach ($aCacheKeys as $iIndex => $sKey) {
             /** @var ModuleTopic_EntityTopicQuestionVote[] $data */
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aTopicsQuestionVote[$data[$sKey]->getTopicId()] = $data[$sKey];
                 } else {
                     $aTopicIdNotNeedQuery[] = $aTopicsId[$iIndex];
                 }
             }
         }
     }
     // * Смотрим каких топиков не было в кеше и делаем запрос в БД
     $aTopicIdNeedQuery = array_diff($aTopicsId, array_keys($aTopicsQuestionVote));
     $aTopicIdNeedQuery = array_diff($aTopicIdNeedQuery, $aTopicIdNotNeedQuery);
     $aTopicIdNeedStore = $aTopicIdNeedQuery;
     if ($aTopicIdNeedQuery) {
         if ($data = $this->oMapper->GetTopicsQuestionVoteByArray($aTopicIdNeedQuery, $iUserId)) {
             foreach ($data as $oTopicVote) {
                 // * Добавляем к результату и сохраняем в кеш
                 $aTopicsQuestionVote[$oTopicVote->getTopicId()] = $oTopicVote;
                 E::ModuleCache()->Set($oTopicVote, "topic_question_vote_{$oTopicVote->getTopicId()}_{$oTopicVote->getVoterId()}", array(), 60 * 60 * 24 * 4);
                 $aTopicIdNeedStore = array_diff($aTopicIdNeedStore, array($oTopicVote->getTopicId()));
             }
         }
     }
     // * Сохраняем в кеш запросы не вернувшие результата
     foreach ($aTopicIdNeedStore as $sId) {
         E::ModuleCache()->Set(null, "topic_question_vote_{$sId}_{$iUserId}", array(), 60 * 60 * 24 * 4);
     }
     // * Сортируем результат согласно входящему массиву
     $aTopicsQuestionVote = F::Array_SortByKeysArray($aTopicsQuestionVote, $aTopicsId);
     return $aTopicsQuestionVote;
 }
开发者ID:AlexSSN,项目名称:altocms,代码行数:59,代码来源:Topic.class.php

示例2: GetFriendsByArray

 /**
  * Получить список отношений друзей
  *
  * @param   int|array $aUsersId - Список ID пользователей проверяемых на дружбу
  * @param   int       $iUserId  - ID пользователя у которого проверяем друзей
  *
  * @return ModuleUser_EntityFriend[]
  */
 public function GetFriendsByArray($aUsersId, $iUserId)
 {
     if (Config::Get('sys.cache.solid')) {
         return $this->GetFriendsByArraySolid($aUsersId, $iUserId);
     }
     if (!$aUsersId) {
         return array();
     } elseif (!is_array($aUsersId)) {
         $aUsersId = array($aUsersId);
     } else {
         $aUsersId = array_unique($aUsersId);
     }
     $aFriends = array();
     $aUserIdNotNeedQuery = array();
     // * Делаем мульти-запрос к кешу
     $aCacheKeys = F::Array_ChangeValues($aUsersId, 'user_friend_', '_' . $iUserId);
     if (false !== ($data = E::ModuleCache()->Get($aCacheKeys))) {
         // * проверяем что досталось из кеша
         foreach ($aCacheKeys as $iIndex => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aFriends[$data[$sKey]->getFriendId()] = $data[$sKey];
                 } else {
                     $aUserIdNotNeedQuery[] = $aUsersId[$iIndex];
                 }
             }
         }
     }
     // * Смотрим каких френдов не было в кеше и делаем запрос в БД
     $aUserIdNeedQuery = array_diff($aUsersId, array_keys($aFriends));
     $aUserIdNeedQuery = array_diff($aUserIdNeedQuery, $aUserIdNotNeedQuery);
     $aUserIdNeedStore = $aUserIdNeedQuery;
     if ($aUserIdNeedQuery) {
         if ($data = $this->oMapper->GetFriendsByArrayId($aUserIdNeedQuery, $iUserId)) {
             foreach ($data as $oFriend) {
                 // * Добавляем к результату и сохраняем в кеш
                 $aFriends[$oFriend->getFriendId($iUserId)] = $oFriend;
                 /**
                  * Тут кеш нужно будет продумать как-то по другому.
                  * Пока не трогаю, ибо этот код все равно не выполняется.
                  * by Kachaev
                  */
                 E::ModuleCache()->Set($oFriend, "user_friend_{$oFriend->getFriendId()}_{$oFriend->getUserId()}", array(), 'P4D');
                 $aUserIdNeedStore = array_diff($aUserIdNeedStore, array($oFriend->getFriendId()));
             }
         }
     }
     // * Сохраняем в кеш запросы не вернувшие результата
     foreach ($aUserIdNeedStore as $sId) {
         E::ModuleCache()->Set(null, "user_friend_{$sId}_{$iUserId}", array(), 'P4D');
     }
     // * Сортируем результат согласно входящему массиву
     $aFriends = F::Array_SortByKeysArray($aFriends, $aUsersId);
     return $aFriends;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:63,代码来源:User.class.php

示例3: GetTalkUsersByArray

 /**
  * Получить список отношений разговор-юзер по списку айдишников
  *
  * @param array $aTalksId    Список ID сообщений
  * @param int   $iUserId    ID пользователя
  *
  * @return array
  */
 public function GetTalkUsersByArray($aTalksId, $iUserId)
 {
     if (!is_array($aTalksId)) {
         $aTalksId = array($aTalksId);
     }
     $aTalksId = array_unique($aTalksId);
     $aTalkUsers = array();
     $aTalkIdNotNeedQuery = array();
     // Делаем мульти-запрос к кешу
     $aCacheKeys = F::Array_ChangeValues($aTalksId, 'talk_user_', '_' . $iUserId);
     if (false !== ($data = E::ModuleCache()->Get($aCacheKeys))) {
         // проверяем что досталось из кеша
         foreach ($aCacheKeys as $iIndex => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aTalkUsers[$data[$sKey]->getTalkId()] = $data[$sKey];
                 } else {
                     $aTalkIdNotNeedQuery[] = $aTalksId[$iIndex];
                 }
             }
         }
     }
     // Смотрим чего не было в кеше и делаем запрос в БД
     $aTalkIdNeedQuery = array_diff($aTalksId, array_keys($aTalkUsers));
     $aTalkIdNeedQuery = array_diff($aTalkIdNeedQuery, $aTalkIdNotNeedQuery);
     $aTalkIdNeedStore = $aTalkIdNeedQuery;
     if ($aTalkIdNeedQuery) {
         if ($data = $this->oMapper->GetTalkUserByArray($aTalkIdNeedQuery, $iUserId)) {
             foreach ($data as $oTalkUser) {
                 // Добавляем к результату и сохраняем в кеш
                 $aTalkUsers[$oTalkUser->getTalkId()] = $oTalkUser;
                 E::ModuleCache()->Set($oTalkUser, "talk_user_{$oTalkUser->getTalkId()}_{$oTalkUser->getUserId()}", array("update_talk_user_{$oTalkUser->getTalkId()}"), 60 * 60 * 24 * 4);
                 $aTalkIdNeedStore = array_diff($aTalkIdNeedStore, array($oTalkUser->getTalkId()));
             }
         }
     }
     // Сохраняем в кеш запросы не вернувшие результата
     foreach ($aTalkIdNeedStore as $sId) {
         E::ModuleCache()->Set(null, "talk_user_{$sId}_{$iUserId}", array("update_talk_user_{$sId}"), 60 * 60 * 24 * 4);
     }
     // Сортируем результат согласно входящему массиву
     $aTalkUsers = F::Array_SortByKeysArray($aTalkUsers, $aTalksId);
     return $aTalkUsers;
 }
开发者ID:hard990,项目名称:altocms,代码行数:52,代码来源:Talk.class.php

示例4: GetBlogUsersByArrayBlog

 /**
  * Получить список отношений блог-юзер по списку айдишников
  *
  * @param array|int $aBlogId Список ID блогов
  * @param int       $iUserId ID пользователя
  *
  * @return ModuleBlog_EntityBlogUser[]
  */
 public function GetBlogUsersByArrayBlog($aBlogId, $iUserId)
 {
     if (!$aBlogId) {
         return array();
     }
     if (Config::Get('sys.cache.solid')) {
         return $this->GetBlogUsersByArrayBlogSolid($aBlogId, $iUserId);
     }
     if (!is_array($aBlogId)) {
         $aBlogId = array(intval($aBlogId));
     }
     $aBlogId = array_unique($aBlogId);
     $aBlogUsers = array();
     $aBlogIdNotNeedQuery = array();
     // * Делаем мульти-запрос к кешу
     $aCacheKeys = F::Array_ChangeValues($aBlogId, 'blog_relation_user_', '_' . $iUserId);
     if (false !== ($data = E::ModuleCache()->Get($aCacheKeys))) {
         // * проверяем что досталось из кеша
         foreach ($aCacheKeys as $iIndex => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aBlogUsers[$data[$sKey]->getBlogId()] = $data[$sKey];
                 } else {
                     $aBlogIdNotNeedQuery[] = $aBlogId[$iIndex];
                 }
             }
         }
     }
     // * Смотрим каких блогов не было в кеше и делаем запрос в БД
     $aBlogIdNeedQuery = array_diff($aBlogId, array_keys($aBlogUsers));
     $aBlogIdNeedQuery = array_diff($aBlogIdNeedQuery, $aBlogIdNotNeedQuery);
     $aBlogIdNeedStore = $aBlogIdNeedQuery;
     if ($aBlogIdNeedQuery) {
         if ($data = $this->oMapper->GetBlogUsersByArrayBlog($aBlogIdNeedQuery, $iUserId)) {
             foreach ($data as $oBlogUser) {
                 // * Добавляем к результату и сохраняем в кеш
                 $aBlogUsers[$oBlogUser->getBlogId()] = $oBlogUser;
                 E::ModuleCache()->Set($oBlogUser, "blog_relation_user_{$oBlogUser->getBlogId()}_{$oBlogUser->getUserId()}", array(), 'P4D');
                 $aBlogIdNeedStore = array_diff($aBlogIdNeedStore, array($oBlogUser->getBlogId()));
             }
         }
     }
     // * Сохраняем в кеш запросы не вернувшие результата
     foreach ($aBlogIdNeedStore as $sId) {
         E::ModuleCache()->Set(null, "blog_relation_user_{$sId}_{$iUserId}", array(), 'P4D');
     }
     // * Сортируем результат согласно входящему массиву
     $aBlogUsers = F::Array_SortByKeysArray($aBlogUsers, $aBlogId);
     return $aBlogUsers;
 }
开发者ID:AlexSSN,项目名称:altocms,代码行数:58,代码来源:Blog.class.php

示例5: func_array_sort_by_keys

function func_array_sort_by_keys($array, $aKeys)
{
    return F::Array_SortByKeysArray($array, $aKeys);
}
开发者ID:AntiqS,项目名称:altocms,代码行数:4,代码来源:function.php

示例6: GetCommentsByArrayId

 /**
  * Список комментов по ID
  *
  * @param array|int $aCommentsId    Список ID комментариев
  *
  * @return array
  */
 public function GetCommentsByArrayId($aCommentsId)
 {
     if (!$aCommentsId) {
         return array();
     }
     if (Config::Get('sys.cache.solid')) {
         return $this->GetCommentsByArrayIdSolid($aCommentsId);
     }
     if (!is_array($aCommentsId)) {
         $aCommentsId = array($aCommentsId);
     }
     $aCommentsId = array_unique($aCommentsId);
     $aComments = array();
     $aCommentIdNotNeedQuery = array();
     // * Делаем мульти-запрос к кешу
     $aCacheKeys = F::Array_ChangeValues($aCommentsId, 'comment_');
     if (false !== ($data = E::ModuleCache()->Get($aCacheKeys))) {
         // * Проверяем что досталось из кеша
         foreach ($aCacheKeys as $iIndex => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aComments[$data[$sKey]->getId()] = $data[$sKey];
                 } else {
                     $aCommentIdNotNeedQuery[] = $aCommentsId[$iIndex];
                 }
             }
         }
     }
     // * Смотрим каких комментов не было в кеше и делаем запрос в БД
     $aCommentIdNeedQuery = array_diff($aCommentsId, array_keys($aComments));
     $aCommentIdNeedQuery = array_diff($aCommentIdNeedQuery, $aCommentIdNotNeedQuery);
     $aCommentIdNeedStore = $aCommentIdNeedQuery;
     if ($aCommentIdNeedQuery) {
         if ($data = $this->oMapper->GetCommentsByArrayId($aCommentIdNeedQuery)) {
             foreach ($data as $oComment) {
                 // * Добавляем к результату и сохраняем в кеш
                 $aComments[$oComment->getId()] = $oComment;
                 E::ModuleCache()->Set($oComment, "comment_{$oComment->getId()}", array(), 'P4D');
                 $aCommentIdNeedStore = array_diff($aCommentIdNeedStore, array($oComment->getId()));
             }
         }
     }
     // * Сохраняем в кеш запросы не вернувшие результата
     foreach ($aCommentIdNeedStore as $nId) {
         E::ModuleCache()->Set(null, "comment_{$nId}", array(), 'P4D');
     }
     // * Сортируем результат согласно входящему массиву
     $aComments = F::Array_SortByKeysArray($aComments, $aCommentsId);
     return $aComments;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:57,代码来源:Comment.class.php


注:本文中的F::Array_SortByKeysArray方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。