字符串去重和数组去重

字符串去重:

<?php  
/* 
字符串去重 
*/  
/*方法一,使用内置函数*/  
//公共函数:字符串去重函数  
$str = '1,2,3,3,3,5,4,4,5,4,7,6,,4,5';  
  
function unique($str){  
    //字符串中,需要去重的数据是以数字和“,”号连接的字符串,如$str,explode()是用逗号为分割,变成一个新的数组,见打印  
    $arr = explode(',', $str);  
    $arr = array_unique($arr);//内置数组去重算法  
    $data = implode(',', $arr);  
    $data = trim($data,',');//trim — 去除字符串首尾处的空白字符(或者其他字符),假如不使用,后面会多个逗号  
    return $data;//返回值,返回到函数外部  
}  
echo unique($str);  
?>  

方法一中使用内置函数,可以很方便的得到预期的效果, 打印出来的结果如下:1,2,3,5,4,7,6

<?php  
/*方法二,用foreach循环遍历也可以*/  
//公共函数:字符串去重函数  
$str = '1,2,3,3,3,5,4,4,5,4,7,6,,4,5';  
  
function unique($str){  
    $arr = explode(',', $str);  
    $arr = array_unique($arr);  
    $data = '';  
    //使用foreach循环拼接也可以得到,得到的效果是一样的  
    foreach ($arr as $key => $value) {  
        $data .= $value.',';//拼接关键代码</span></strong>  
    }  
    $data = trim($data,',');  
    return $data;  
}  
echo unique($str);  
?> 

两者得到的结果是一样的,当然,使用php内置函数会更高效,但是方法二中,字符串的拼接思想还是值得学习的。

数组去重

使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组。

但是,如果你尝试在一个大的数组里使用array_unique()函数,它会运行地慢一些。点这里查看PHP 快速实现数组去重解决方案

总结:字符串去重和数组去重,面试中经常会问到!共同的核心函数就是:array_unique()


关注公众号,了解更多it技术(it问答网

window服务器下定时执行php页面,以实现信息的抓取;bat执行(php)接口文件。作者:徐老师,徐多蔚,xuduowei

 

@echo off
rem 关闭回显
start “C:\Program Files\Internet Explorer\iexplore.exe” “这里写上你接口url1”
start “C:\Program Files\Internet Explorer\iexplore.exe” “这里写上你接口url2”

rem 使用浏览器打开url地址,5秒后自动关闭ie
ping 127.0.0.1 -n 5 >nul
taskkill /im iexplore.exe /f

 

针对window系统,如何定时执行这个bat文件,以定时执行接口文件呢?

以win7服务器为例:

1、开始–控制面板–管理工具–计划任务

2、在“任务计划程序库”上右键–创建基本任务

3、具体操作步骤

提示:若是需要重启启动电脑,如下:

程序脚本:C:\Windows\System32\shutdown.exe

参数:-r -f -t 0

https://jingyan.baidu.com/article/e6c8503c55529be54f1a18d1.html


关注公众号,了解更多it技术(it问答网

bat执行php,

A.BAT 文件放www文件夹中,内容如下:

E:\phpStudy\php\php-5.4.45\php -f b.php
pause

================================

b.php也放www中,内容如下:

<?php

echo 666;

?>

 

若需要定时器处理,比如:10s执行一次【经过实测无误。】。

bat文件内容如下:

@echo off
E:\phpStudy\php\php-5.4.45\php -f b.php
:start
ping -n 10 127.1>NUL
E:\phpStudy\php\php-5.4.45\php -f b.php
goto start
pause

 

===========

若要实现每执行一次都换行,可以在bat中这样 echo.  注意:echo后面有一个点。

@echo off
E:\phpStudy\php\php-5.4.45\php -f b.php
echo.
:start
ping -n 3 127.1>NUL
E:\phpStudy\php\php-5.4.45\php -f b.php
echo.
goto start
pause

 

提示:若bat中显示中文乱码,则用:iconv(“utf-8″,”gb2312//IGNORE”,”中文”);处理下,转下编码。因为bat中编码中文是gb2312!若b.php是ansi编码则不需要转码的哦。

echo iconv(“utf-8″,”gb2312//IGNORE”,”中文”);处理下即可,若需要换行则串接一个 “\r\n”

完整b.php代码如下:

echo file_get_contents(‘http://127.0.0.1/oop,180104/tp3/index.php/Admin/index/aaa’);
echo “处理完成\r\n”;


关注公众号,了解更多it技术(it问答网

如何删除数据库里最后一条数据和如何删除数据库里第一条数据

学员问题:

徐多蔚老师给出的解决方案格式:

delete a from infos a,(select max(id) id from infos) b where a.id = b.id;   max最后一个id
delete a from infos a,(select min(id) id from infos) b where a.id = b.id; min获得第一个id


关注公众号,了解更多it技术(it问答网