思路:
1、分析数组,下标是4的处理完,其他的都是一样的问题,及下标4的待处理字符为:
http://api..cxitco.cn/api/?key=brsPvFWIXqYI7YM32F
&url=https://vip..aotian.love/api/?key=brsPvFWIXqYI7YM32F
&url=https://vip..aotian.love/api/?key=brsPvFWIXqYI7YM32F
&url=https://vip..aotian.love/api/?key=brsPvFWIXqYI7YM32F
&url=https://vip..aotian.love/api/?key=brsPvFWIXqYI7YM32F
&url=
预期处理结果为:
http://api..cxitco.cn/api/?key=brsPvFWIXqYI7YM32F&url=https://vip..aotian.love/api/?key=brsPvFWIXqYI7YM32F
2、实现思路:
遍历原数组,通过explode "&url="一次切割 去重(array_flip或array_unique,前者去重效率高)和特殊下标4 "?url=" 二次切割 implode再做数组组合成字符串
下图是第一次遍历去重效果:
//待处理数组
$arr= Array (
'https://ku.renrenmi.cc/api/?key=clGOEKxbzUn348eQmu&url=https://ku.renrenmi.cc/api/?key=clGOEKxbzUn348eQmu&url=',
'https://vip..renrenmi.cc/api/?key=7j5pXP3zWzv4RJQ2zZ&url=https://vip..renrenmi.cc/api/?key=7j5pXP3zWzv4RJQ2zZ&url=http://play..bichangzw.cn/jianghu/json/?url=',
'https://vip..renrenmi.cc/api/?key=7j5pXP3zWzv4RJQ2zZ&url=http://play..bichangzw.cn/jianghu/json/?url=https://vip..renrenmi.cc/api/?key=7j5pXP3zWzv4RJQ2zZ&url=',
'https://vip..renrenmi.cc/api/?key=7j5pXP3zWzv4RJQ2zZ&url=http://play..bichangzw.cn/jianghu/json/?url=https://vip..renrenmi.cc/api/?key=7j5pXP3zWzv4RJQ2zZ&url=',
'http://api..cxitco.cn/api/?key=brsPvFWIXqYI7YM32F&url=https://vip..aotian.love/api/?key=brsPvFWIXqYI7YM32F&url=https://vip..aotian.love/api/?key=brsPvFWIXqYI7YM32F&url=https://vip..aotian.love/api/?key=brsPvFWIXqYI7YM32F&url=https://vip..aotian.love/api/?key=brsPvFWIXqYI7YM32F&url='
);
//$arr一维数组 换成二维数组去重
$firstTemp=[];
foreach ($arr as $key => $value) {
$firstTemp[$key]=explode('&url=', $value);//切割字符
$firstTemp[$key]=array_flip(array_flip($firstTemp[$key]));//'&url=' 一次去重
}
echo "<pre>原数据";
print_r($arr);
echo "<pre>第一次切去重";
print_r($firstTemp);
exit();
效果图如下:
然后看是否下标4继续处理切割和去重 拼接数组为字符得到最终字符了,用到的函数基本都提现在上方了
php使用这个函数可以去重:
array_unique($arr);
不行自己写个?先对数组排序。比如 正序,然后巡检判断当前值和数组下一个值是否相等。是的话这个不往新数组中插入。两个.. 的话直接用字符串替换函数换一下。