晚上在群里有人问到,当时忙着写采集代码的代码
么来得及细看,只是匆匆的回了 个 读取 用户缓存
$CACHE -> readCache('user');
至于排序当然是 PHP 自定义排序函数 uasort
没曾想 还真给说错了
不在
user
缓存里面,应该是sta
才对这会儿 采集代码也测试完毕了,就顺手把 输出 EMLOG 用户信息 以 日志数量排序给写出来了
关键的函数还是
uasort
<?php /** * 返回 EMLOG 用户列表 数组 (文章数量排序) * * EMLOG 测试版本 5.3.1, 返回的数据是 集合了 user 与 sta 缓存的数据 * * $asc bool 是否为升序排列 默认 fasle **/ function ja_get_users($asc = false){ global $CACHE; $cache_sta = $CACHE -> readCache('sta'); // 删除 不需要的数组元素 方法 1 unset( $cache_sta['lognum'], $cache_sta['draftnum'], $cache_sta['comnum'], $cache_sta['comnum_all'], $cache_sta['twnum'], $cache_sta['hidecomnum'], $cache_sta['checknum'] ); // 删除 不需要的数组元素 方法 2 // ksort($cache_sta); $cache_sta = array_slice($cache_sta, 7, 999, true); uasort($cache_sta, function ($a, $b){ return $a['lognum'] == $b['lognum'] ? 0 : $a['lognum'] < $b['lognum'] ? 1 : -1; }); if($asc) $cache_sta = array_reverse($cache_sta, true); // 获取用户信息 $cache_user = $CACHE -> readCache('user'); foreach($cache_sta as $uid => &$v){ $v = array_merge($v, $cache_user[$uid]); } return $cache_sta; } $user_list = ja_get_users(); // 默认 倒序排列, 如需正序 传入 true 即可 // 下面只是 输出演示 的例子 echo "<ol>"; foreach($user_list as $val){ extract($val); /** * 可用变量 * $lognum * $draftnum * $commentnum * $hidecommentnum * $twnum * $avatar * $name * $mail * $des * $ischeck * $role * 两外还有 $photo **/ echo " <li> <ul> <li>UID: $uid</li> <li>用户名: $name</li> <li>文章数: $lognum</li> </ul> </li>"; } echo "</ol><pre>"; print_r($user_list); // 输出原始数组 echo "</pre>";
转载代码能否注明出何处?