字符串都是海针 数组是针海

输出及打印

echo 8%(-2);  //输出结果为0 模后的正负号可无视  模前的有用
echo date('Y-m-d H:i:s',strtotime('-1 day')); //用php打印出前一天的时间格式
  • echo
echo '你好';  //结构语句   无返回值
  • print
print '你好';  //结构语名 简单数据  有返回值  1
  • print_r
print_r([
'name' => '帅哥',
'age' => 18,
]) ; //结构语名 复杂数据类型 有返回值 1
  • printf
printf('中国人%s ','累');  //中国人累
printf('%2.2f','12.3034234'); //12.30
  • var_dump
var_dump(array('name'=>'tom'));  //打印详细数据类型 无返回值

字符串去除与填充

  • trim
echo trim('  abb   ');  //返回去掉两边的空格的字符串
  • ltrim
echo ltrim('        abb           ');  //去掉左边的空白
  • rtrim
echo rtrim('        abb           ');  //去掉右边的空白
  • str_pad
echo str_pad('input', 10, '-');  //以指定字符_填充为指定长度

字符串连接与分割 数组变字符串

  • implode
echo implode('', array(1,2,3,4,54)); //以空格连接数组的每一项 123454
echo join('',array(0,8,7,6,4)); //同上 08764
  • str_split
print_r(str_split('string', 2)); //以长度为2切字符变数组 Array ( [0] => st [1] => ri [2] => ng )
  • explode
print_r(explode('i','string'));  //用字符串切另一字符串变数组 Array ( [0] => str [1] => ng )

字符串截取

  • substr
echo substr('hello world', 1,1);  //返回从开始到结束的字符并返回 e
  • strstr
echo strstr('hello world', 'e');//从他开始切true向前不含,后含 ello world
echo strstr('hello world', 'e',true);//从他开始切true向前不含,后含 h
  • strrchr strchr
echo strrchr('index.php', '.');//从最后一次搜索到的字符处返回;用处:取路径中文件名 .php
echo strchr('index.php', '.');//同上面的 .php

字符串替换

  • str_replace
echo str_replace('love', 'dream', 'I love you!');//I dream you!
  • str_repeat
echo str_repeat('-', 6);//------
  • substr_replace
echo substr_replace('string', 'a', 2, 1); //从2位向后1位用a换返回原类型(字符串跟数组都一样)  staing

字符串长度与位置

  • strlen
echo strlen('name');//字符串长度 4
  • strpos
echo strpos('name', 'a');  //首次出现 1
  • strrpos
echo strrpos('name', 'a'); //最后一次出现 1

字符串转换

  • strtolower
echo strtolower('ABS');//abs
  • strtoupper
echo strtoupper('abb');//ABB
  • lcfirst
echo lcfirst('NAME');//nAME
  • ucfirst
echo ucfirst('name');//Name
  • ucwords
echo ucwords('name you');//Name You

特殊字符处理

  • nl2br
echo nl2br("na\nme");  //\n位置换成<br />
  • addslashes
echo addslashes("http://wwwabb.com.cn'\sjfl'");//转义http://wwwabb.com.cn\'\\sjfl\'
  • htmlspecialchars
echo htmlspecialchars("fl<>sjfsd;'/.?[p78374628");//特殊符号
  • htmlspecialchars_decode
echo htmlspecialchars_decode('sldjfasjf');//转过来
  • urlencode
echo urlencode("http://www.baidu.com/?>ksfsjlfsf");//编码

时间函数

  • time()
echo time();//时间戳
  • date()
echo date('Y-m-d H:i:s',mktime(12,31,0,12,31,1992))."<br />";//时分钞月日年
  • microtime()
echo microtime()

数学函数

  • round
echo round(13.01);// 13
  • ceil
echo ceil(13.01); //14
  • floor
echo floor(13.01); //13
  • pow
echo pow(100, 0.5); //10
  • abs
echo abs(-1); //1
  • rand
echo rand(1000,1001);//一个随机整数
  • max
echo max(array(1,23,4,5,6)); //23
  • min
echo min(array(1.2,4,5,6,6)); //1.2
  • uniqid
echo uniqid(); //5cb3168b7238f 变化

指针操作函数

$arr = array('name'=>'tom','age'=>18,'sex'=>'nan');
$brr = array(0,23,4,5,67,87,89,9);
list($a,$b,$c)=$brr;
echo $a,$b,$c;//0234
  • reset
reset($arr);//数组指针重置
  • next
print_r(next($arr));//18
  • current
print_r(current($arr));//tom
  • end
echo end($arr);//nan
  • key
echo key($arr);//name

单元操作函数

  • array_pop
$crr = array(1,2,3,4,5,65,67,7);
print_r(array_pop($crr)); //7
print_r($crr);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 65 [6] => 67 )
  • array_push
print_r(array_push($crr, 'anme')); //9
print_r($crr); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 65 [6] => 67 [7] => 7 [8] => anme )
  • array_shift
print_r(array_shift($crr));//1
print_r($crr); //Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 65 [5] => 67 [6] => 7 )
  • array_unshift
print_r(array_unshift($crr, 'sex'));//9
print_r($crr);//Array ( [0] => sex [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 65 [7] => 67 [8] => 7 )
  • array_splice
$vcc = array_splice($crr, 2, 0, 'age');//2切0个 age换 无返回
print_r($crr);//Array ( [0] => 1 [1] => 2 [2] => age [3] => 3 [4] => 4 [5] => 5 [6] => 65 [7] => 67 [8] => 7 )
  • array_slice
array_slice($crr, 2, 2, true);//从2个取含2加true不变下标

排序函数

asort($crr);//值从低到高 保持键值关系
arsort($crr);//值从高到低 保持键值关系
ksort($crr);//值从低到高
krsort($crr);//值从高到低
shuffle($crr);//洗牌

查找函数

in_array(1,$crr)//true
array_keys($crr)//Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 )
array_key_exists(2,$crr)//true
array_search('sex',$crr)//false
array_reverse($crr)//Array ( [0] => 7 [1] => 67 [2] => 65 [3] => 5 [4] => 4 [5] => 3 [6] => 2 [7] => 1 )
array_merge($arr,$crr);//合并 键相同,后替换前 $arr+$crr 合并 键相同 前替换后
array_values($crr)//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 65 [6] => 67 [7] => 7 )
array_sum($crr)//154
array_map(function($res){return $res;}, $crr);//回调$res为$crr中的第一项 回调函数返回填充数组
array_walk($crr, 'aaa');
function aaa($value, $key){
echo "$key. $value <br />\n";
}
//0. 1
//1. 2
//2. 3
//3. 4
//4. 5
//5. 65
//6. 67
//7. 7 $brr = range(1,5);
print_r($brr);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

PHP字符串函数

addslashes($str) //使str内单引号(¹)、双引号(")、反斜线()与 NUL字符串转换为¹,",\。
Magic_quotes_gpc = On //自动对 get post cookie的内容进行转义
get_magic_quotes_gpc()//检测是否打开magic_quotes_gpc
stripslashes() //去除字符串中的反斜杠

冒泡

$ar = array(1,3,54,6,7,89,0);
$len = count($ar);
for ($i = 0; $i < $len - 1 ; $i++) {
for ($j = 0; $j < $len - 1 - $i; $j++) {
if ($ar[$j] > $ar[$j+1]) {
$temp = $ar[$j];
$ar[$j] = $ar[$j+1];
$ar[$j+1] = $temp;
}
}
}
print_r($ar);//Array ( [0] => 0 [1] => 1 [2] => 3 [3] => 6 [4] => 7 [5] => 54 [6] => 89 ) //外循环-1次 趟数
//内循环-1次-外循环次数 遍历每个数字
//第0个与第1个比较不停的交换
//时间复杂度 O(n^2)

选择排序

$ar = array(1,3,54,6,7,89,0,98,34,2,4,435,2,2,6,);
$len = count($ar);
for ($i=0; $i < $len - 1; $i++) {
$temp = $ar[0];
$p = 0;
for ($j=0; $j < $len - $i; $j++) {
if($ar[$j] > $temp) {
$temp = $ar[$j];
$p = $j;
}
}
$te = $ar[$len - 1 - $i];
$ar[$len-1-$i] = $ar[$p];
$ar[$p] = $te;
}
print_r($ar); //外循环-1 趟数
//内循环-外循环定义临时变量存第1个变量与值
//内循环每个与它比较有比它大就交换外循环1趟找出最大
//用临时变量跟他们交换
//将它与最后一个交换位置
//时间复杂度 O(n^2)

插入排序

$ar = array(1,3,54,6,7,89,0,98,34,2,4,435,2,2,6,);

$len = count($ar);
for ($i=1; $i < $len; $i++) {
for ($j=$i-1; $j >=0 ; $j--) {
if($ar[$j] > $ar[$j+1]){
$temp = $ar[$j+1];
$ar[$j+1] = $ar[$j];
$ar[$j] = $temp;
}
}
}
print_r($ar);//Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 2 [4] => 2 [5] => 3 [6] => 4 [7] => 6 [8] => 6 [9] => 7 [10] => 34 [11] => 54 [12] => 89 [13] => 98 [14] => 435 ) //外循环从1开始遍历从左到右$len个
//内循环为外循环-1 从左向右走外循环-1个
//比较内循环最后一个与前一个并交换
//时间复杂度 O(n^2)

快速排序

$ar = array(1,3,54,6,7,89,0,98,34,2,4,435,2,2,6,);
function quick_sort($ar) {
$len = count($ar);
if($len <= 1) {
return $ar;
}
$my = $ar[0];
$left = array();
$mid = array();
$right = array();
foreach ($ar as $key => $value) {
if($value > $my) {
$right[] = $value;
} else if($value < $my) {
$left[] = $value;
} else if($value = $my) {
$mid[] = $value;
}
}
$left = quick_sort($left);
$right = quick_sort($right);
$ar = array_merge($left,$mid,$right);
return $ar;
}
print_r(quick_sort($ar)); //封装成函数元素为一个就直接返回
//定义三个空数组
//取第一个元素遍历所有与其比较
//小的放左等中大的放右
//递归左右合并三个数组并返回数组

二分查找

function test($arr, $value, $start = 0, $end = NULL) {
if($end == NULL) {
$end = count($arr) - 1;
}
$index = floor(($start+$end)/2);
$base = $arr[$index];
if($value < $base) {
return test($arr, $value, $start, $index-1);
}else if($value > $base) {
return test($arr, $value, $index+1, $end);
}else {
return $index;
}
} $arr = array(1, 3, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20);
$value = 8;
echo test($arr, $value); //5
//二分查找前提是有序
//二分法查找取最大标跟最小标的平均值
//用中值对比查找值大小递归返回
//时间复杂度 O(log2n)

无极限分类 树型结构

function Tree($data, $pid = 0, $level = 0) {
static $newdata = array();
foreach ($data as $value) {
if ($value['dept_pid'] == $pid) {
$newdata[] = $value;
$newdata['level'] = $level;
Tree($data, $value['dept_id'], $level + 1);
}
}
}
//传入数组跟初始顶级编号
//设置静态空数组来保存数据
//遍历比较相等存入静态数组
//递归数组并传入新的值

php 面试常问 基础知识的更多相关文章

  1. [Flutter] 一些面试可能会问基础知识

    1. Flutter 是什么? Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. Flutter可以与现有的代码一起工作.在全世界,Flutter正在被 ...

  2. python基础之面试常问

    目录 python相对其他语言有什么特点? python内存管理机制,gc机制的了解,gc回收三种算法. lambda函数 高级函数 map.reduce.filter.sorted等. 简述六种基本 ...

  3. 面试常问的几个排序和查找算法,PHP实现

    冒泡,快排,二分查找,都是面试常问的几个算法题目,虽然简单,但是一段时间不用的话就很容易忘记,这里我用PHP实现了一下,温故而知新. 排序 冒泡排序 每一次冒出一个最大的值 function bubb ...

  4. 面试常问的dubbo的spi机制到底是什么?

    前言 dubbo是一款微服务开发框架,它提供了 RPC通信 与 微服务治理 两大关键能力.作为spring cloud alibaba体系中重要的一部分,随着spring cloud alibaba在 ...

  5. 各大互联网公司java开发面试常问问题

    本人是做java开发的,这是我参加58,搜狐,搜狗,新浪微博,百度,腾讯文学,网易以及其他一些小的创业型公司的面试常被问的问题,当然有重复,弄清楚这些,相信面试会轻松许多. 1. junit用法,be ...

  6. Python面试常问的10个问题

    很多人想找Python工作,面试往往在基础知识点采坑了 Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位需求越来越高.下面我收集了10个Python面试 ...

  7. 面试常问Spring IOC,不得不会。

    广义的 IOC IoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”. 两种实现: 依赖查找(DL)和依赖注入(DI). IOC 和 DI .DL 的关系( ...

  8. Java面试常问的问题(转载)

    并发.JVM.分布式.TCP/IP协议 1)Java的数据结构相关的类实现原理,比如LinkedList,ArrayList,HashMap,TreeMap这一类的.以下简单模拟一个数据结构的连环炮. ...

  9. 面试常问 Java基础 冒泡排序

    冒泡排序就是对一个数组进行排序. 用双层for循环就可以解决. 第一层,决定排序的次数. n个数,进行n-1次排序就行了. 第二层,把相邻的两个数比较,谁小,放到后面和下一个数字比较,谁小谁放到后面, ...

随机推荐

  1. java获取文件大小的方法

    目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.io.*中FileInputStream的ava ...

  2. Linux动态链接库.so文件的创建与使用

    1. 介绍         使用GNU的工具我们如何在Linux下创建自己的程序函数库?一个"程序函数库"简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数据可 ...

  3. 提升PHP速度

    PHP的优点之一是速度很快,对于一般的网站应用,可以说是已经足够了.不过如果站点的访问量很高.带宽窄或者其它的因素令服务器产生性能瓶颈的时候,你可能得想想其它的办法来进一步提高PHP的速度了.这篇文章 ...

  4. c++计算器后续(1)

    自娱自乐: 大概是一直在说的代码规范,大概是玩一玩,以上. 代码规范: 参考原文:链接 相关节选: 4 程序的版式 4.4规则:较长的语句(>80字符)要分成多行书写. 4.5规则:不允许把多个 ...

  5. EDM邮件营销激活不活跃客户群的五大策略

    有很多朋友给U-Mail马工大倒苦水:我邮件群发做了大量工作,可是有一些潜在消费者却始终无动于衷,你要说他没什么用吧,可是明明显示他有打开过,你把这个地址排除出去又有点可惜了,你要说他不可或缺,可是他 ...

  6. JAVA中正则表达式学习总结

    一.JAVA中正则表达式相关的类 1. java.util.regex.Pattern 该类用于编译模式,模式可以理解为一个正则表达式,比如:a*b. 用法如下: // 创建模式 Pattern p ...

  7. 【题解】前k大子段和

    题目描述 Peter喜欢玩数组.NOIP这天,他从Jason手里得到了一个大小为\(n\)的数组. Peter求出了这个数组的所有子段和,并将这\(\frac{n(n+1)}{2}\)个数降序排列,他 ...

  8. 【模板】Tarjan算法与有向图的强连通性

    概念 流图 给定一个有向图G= (V,E),若存在r∈V满足,满足从r出发能够到达V中所有的点,则称G是一个流图,记为(G,r),其中r是流图的源点. 流图的搜索树 在一个流图(G,r)上从r出发,进 ...

  9. [CQOI2006]凸多边形(半平面相交)

    嘟嘟嘟 本来我要写feng shui这道题的.然后网上都说什么半平面相交,于是我还得现学这个东西,就来刷这道模板题了. 所谓的半平面相交和高中数学的分数规划特别像.比如这道题,把每一条边看成一条有向直 ...

  10. WEB安全 ACCESS 注入、盲注脚本

    http://www.xxx.cn/cp.asp?classid=3http://www.xxx.cn/cp.asp?classid=3 and //有拦截关键字http://www.xxx.cn/c ...