$a=1;
$b=&$a;
echo (++$a)+(++$a);
}
test();
PHP7以下的版本返回的是 6 , PHP7版本返回5 , 还真的算奇异 , 个人底层算法差 , 认为是PHP7以下版本的BUG
8.字符集合:输入一个字符串 , 求出该字符串包含的字符集合 , 并按顺序排序(英文)
function set($str){
//转化为数组
$arr = str_split($str);
//去除重复
$arr = array_flip(array_flip($arr));
//排序
sort($arr);
//返回字符串
return implode('', $arr);
}
9.遍历一个文件下的所有文件和子文件夹下的文件
function AllFile($dir){
if($dh = opendir($dir)){
while (($file = readdir($dh)) !== false){
if($file !='..' && $file !='.'){
if(is_dir($dir.'/'.$file)){
AllFile($dir.'/'.$file); //如果判断还是文件 , 则递归
}else{
echo $file; //输出文件名
}
}
}
}
}
10.从一个标准的Url提取出文件的扩展名
function getExt($url)
{
$arr = parse_url($url);
$file = basename($arr['path']);// basename函数返回路径中的文件名部分
$ext = explode('.', $file);
return $ext[count($ext)-1];
}
11.有个人想上一个n级的台阶 , 每次只能迈1级或者迈2级台阶 , 问:这个人有多少种方法可以把台阶走完?例如:总共3级台阶 , 可以先迈1级再迈2级 , 或者先迈2级再迈1级 , 或者迈3次1级总共3中方式
function jieti($num){ //实际上是斐波那契数列
return $num<2?1:jieti($num-1)+jieti($num-2);
}
12.请写一段PHP代码 , 确保多个进程同时写入同一个文件成功
<?php
$fp = fopen("lock.txt","w+");
if (flock($fp,LOCK_EX)) {
//获得写锁 , 写数据
fwrite($fp, "write something");
// 解除锁定
flock($fp, LOCK_UN);
} else {
echo "file is locking...";
}
fclose($fp);
?>
13.无限级分类
function tree($arr,$pid=0,$level=0){
static $list = array();
foreach ($arr as $v) {
//如果是顶级分类 , 则将其存到$list中 , 并以此节点为根节点 , 遍历其子节点
if ($v['pid'] == $pid) {
$v['level'] = $level;
$list[] = $v;
tree($arr,$v['id'],$level+1);
}
}
return $list;
}
14.获取上个月第一天 和 最后一天
//获取上个月第一天
date('Y-m-01',strtotime('-1 month'));
//获取上个月最后一天
date('Y-m-t',strtotime('-1 month'));
15.随机输入一个数字能查询到对应的数据区间
//把区间换成数组写法 , 用二分法查找区间
function binsearch($x,$a){
$c=count($a);
$lower=0;
$high=$c-1;
while($lower<=$high){
$middle=intval(($lower+$high)/2);
if($a[$middle]>=$x){
$high=$middle-1;
}elseif($a[$middle]<=$x ){
$lower=$middle+1;
}
}
return '在区间'.$a[$high].'到'.$a[$lower];
}
$array = ['1','50','100','150','200','250','300'];
$a = '120';
echo binsearch($a,$array);
【php经典趣味算法】
推荐阅读
- 全是经典之作,总有一首让你热血澎湃 歌颂祖国的诗词
- 世界三十种经典鸡尾酒 世界排名前十的鸡尾酒
- 摘录宗旦关于茶道的经典格言
- 茶文化的趣味 规矩和氛围
- 推荐十部韩剧迷不可错过的经典好剧,剧荒的看过来吧
- 茶字妙趣
- 张爱玲与胡兰成婚书的内容 胡兰成张爱玲爱情经典语录
- 浅谈Javaweb经典三层架构和MVC框架模式
- 太极拳拳谱太极拳经典理论
- 茶个妙趣横生的字