输出EMLOG用户信息 - 发表日志数量排序
EMLOG 按用户发表日志数量 排序输出
晚上在群里有人问到,当时忙着写采集代码的代码
么来得及细看,只是匆匆的回了 个 读取 用户缓存
没曾想 还真给说错了
不在
这会儿 采集代码也测试完毕了,就顺手把 输出 EMLOG 用户信息 以 日志数量排序给写出来了
关键的函数还是
转载代码能否注明出何处?
晚上在群里有人问到,当时忙着写采集代码的代码
么来得及细看,只是匆匆的回了 个 读取 用户缓存
$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>";
转载代码能否注明出何处?
本文出自简爱博客,转载时请注明出处及相应链接。

可以查询手机归属地