组保留的标签 余下为需要删除的标签 unset($oldtag[$key]); } } } if (!empty($oldtag)) { $tagids = array(); foreach ($oldtag as $tagid => $tagname) { $tagids[] = $tagid; } well_oldtag_delete($tagids, $tid); } $r = well_tag_process($tid, $fid, $create_tag, $tagarr); return $r; } // 删除标签和绑定的主题 function well_oldtag_delete($tagids, $tid) { $pagesize = count($tagids); $arrlist = well_tag_find_by_tagids($tagids, 1, $pagesize); $delete_tagids = array(); // 删除 $tagids = array(); $n = 0; foreach ($arrlist as $val) { ++$n; if (1 == $val['count']) { // 只有一个主题 $delete_tagids[] = $val['tagid']; } else { $tagids[] = $val['tagid']; } } !empty($delete_tagids) and well_tag_delete($delete_tagids); $arlist = well_tag_thread_find_by_tid($tid, 1, $n); if ($arlist) { $ids = array(); foreach ($arlist as $val) $ids[] = $val['id']; well_tag_thread_delete($ids); } !empty($tagids) and well_tag_update($tagids, array('count-' => 1)); } // 标签数据处理 $arr=新提交的数组 $tagarr=保留的旧标签 function well_tag_process($tid, $fid, $new_tags = array(), $tagarr = array()) { if (empty($tid)) return ''; // 新标签处理入库 if ($new_tags) { $threadarr = array(); $tagids = array(); $i = 0; $size = 5; $n = count($tagarr); $n = $n > $size ? $size : $size - $n; foreach ($new_tags as $name) { ++$i; $name = trim($name); $name = stripslashes($name); $name = strip_tags($name); $name = str_replace(array(' ', '#', "@", "$", "%", "^", '&', '·', '<', '>', ';', '`', '~', '!', '¥', '……', ';', '?', '?', '-', '—', '_', '=', '+', '.', '{', '}', '|', ':', ':', '、', '/', '。', '[', ']', '【', '】', '‘', ' ', ' ', ' ', ' ', ' '), '', $name); $name = htmlspecialchars($name, ENT_QUOTES); if ($name && $i <= $n) { // 查询标签 $read = well_tag_read_name($name); if ($read) { // 存在 count+1 $tagids[] = $read['tagid']; } else { // 入库 $arr = array('name' => $name, 'count' => 1); $tagid = well_tag_create($arr); FALSE === $tagid and message(-1, lang('create_failed')); $read = array('tagid' => $tagid, 'name' => $name); } $tag_thread = array('tagid' => $read['tagid'], 'tid' => $tid); $threadarr[] = $tag_thread; $tagarr[$read['tagid']] = $read['name']; } } !empty($threadarr) and tag_thread_big_insert($threadarr); !empty($tagids) and well_tag_update($tagids, array('count+' => 1)); } $json = empty($tagarr) ? '' : xn_json_encode($tagarr); return $json; } ?> $v = implode(",", $v); $temp[] = $v; } // 去掉重复的字符串,也就是重复的一维数组 $temp = array_unique($temp); // 再将拆开的数组重新组装 $output = array(); foreach ($temp as $k => $v) { if ($stkeep) $k = $starr[$k]; if ($ndformat) { $temparr = explode(",", $v); foreach ($temparr as $ndkey => $ndval) $output[$k][$ndarr[$ndkey]] = $ndval; } else $output[$k] = explode(",", $v); } return $output; } // 合并二维数组 如重复 值以第一个数组值为准 function array2_merge($array1, $array2, $key = '') { if (empty($array1) || empty($array2)) return NULL; $arr = array(); foreach ($array1 as $k => $v) { isset($v[$key]) ? $arr[$v[$key]] = array_merge($v, $array2[$k]) : $arr[] = array_merge($v, $array2[$k]); } return $arr; } /* * 对二维数组排序 两个数组必须有一个相同的键值 * $array1 需要排序数组 * $array2 按照该数组key排序 * */ function array2_sort_key($array1, $array2, $key = '') { if (empty($array1) || empty($array2)) return NULL; $arr = array(); foreach ($array2 as $k => $v) { if (isset($v[$key]) && $v[$key] == $array1[$v[$key]][$key]) { $arr[$v[$key]] = $array1[$v[$key]]; } else { $arr[] = $v; } } return $arr; } ?>下一步

Windows 10 定时任务之自动关闭电脑方法揭秘

win10系统自带有很多的功能,比如说定时关机等。有小伙伴想要给自己的电脑设置定时关机,但是对win10系统不了解,不知道如何设置win10定时关机。下面小编就教下大家windows10定时关机设置方法。 具体的步骤如下:

1月前100

让你的Windows10系统自动下线,定时关机超实用

win10系统自带有很多的功能,比如说定时关机等。有小伙伴想要给自己的电脑设置定时关机,但是对win10系统不了解,不知道如何设置win10定时关机。下面小编就教下大家windows10定时关机设置方法。 具体的步骤如下:

1月前100

告别信号死角,一步到位教你装路由器

路由器的安装和设置如下: 1.首先连接线路,可以参考下图 2.线路连接完毕后,打开浏览器输入路由器的管理地址和管理密码然后进入路由器后台(具体路由器的登录地址和登录密码可以参考说明书或者是路由器背面的标签) 3

1月前180

告别网络死角:一文学会如何正确设置家庭无线路由器

路由器的安装和设置如下: 1.首先连接线路,可以参考下图 2.线路连接完毕后,打开浏览器输入路由器的管理地址和管理密码然后进入路由器后台(具体路由器的登录地址和登录密码可以参考说明书或者是路由器背面的标签) 3

1月前150

从新手到高手:虚拟网卡设置全攻略

windows系统自带此软件 进入添加硬件向导,添加新硬件,检测过后选择添加新设备,再选择从列表中选取,选中网卡下一步,查找制造商Microsoft有一个设备Microsoft Loopback Adapter,选中它,安装完

1月前70

当心!教你怎么解决没有密码无法启动电脑的困境

相信很多朋友为了保护自己的隐私,都会在自己的电脑设置开机密码,但有时候电脑太久没用,就有可能忘记开机密码了,这可怎么办?别着急,今天就跟大家分享两种苹果电脑忘记开机密码解决方式,适用于Mac OS系统。

1月前180

密码记不住?一键重置电脑开机密码指南奉上!

相信很多朋友为了保护自己的隐私,都会在自己的电脑设置开机密码,但有时候电脑太久没用,就有可能忘记开机密码了,这可怎么办?别着急,今天就跟大家分享两种苹果电脑忘记开机密码解决方式,适用于Mac OS系统。

1月前210

手把手教你装G3830:超详细打印机驱动安装指南

有朋友反映说买了打印机回来后,不知道要怎么连在电脑上使用打印。这个其实是需要安装打印机驱动才能正常使用的。今天小编就给大家分享下,希望能帮助到大家。 具体方法如下: 1. 点击“开始菜单”,选择“设备和打印机”,

1月前100

让打印更顺畅:佳能打印机驱动安装详细步骤解析

工作中,尤其是从事半文秘工作的人,不是全文秘,没有安装打印机驱动经验,这里就来说说如何安装佳能打印机驱动。准备安装资料-佳能打印驱动安装步骤1.我这里是压缩文件,解压后,点击Setup.

1月前80

告别混乱!打造你的个人与团队打印机共享秘籍

安装打印机步骤:1.获取对应的驱动程序  首先在网上或者别的渠道获取2.通过USB本地,或者无线连接的 选择对应的添加方式,然后选择对应的驱动程序下一步即可。注意事项:主机共享打印机必须

1月前90

一步一步教你看懂g3830打印机驱动安装全过程

有朋友反映说买了打印机回来后,不知道要怎么连在电脑上使用打印。这个其实是需要安装打印机驱动才能正常使用的。今天小编就给大家分享下,希望能帮助到大家。 具体方法如下: 1. 点击“开始菜单”,选择“设备和打印机”,

1月前80

佳能打印机驱动装机宝典,手把手教你操作

工作中,尤其是从事半文秘工作的人,不是全文秘,没有安装打印机驱动经验,这里就来说说如何安装佳能打印机驱动。准备安装资料-佳能打印驱动安装步骤1.我这里是压缩文件,解压后,点击Setup.

1月前70