如何构建一个数组,共有几种方法 | $arr = array(); $arr[] = ‘abc’; $arr[0]=’abc’; $arr[‘name’]=’abc’;
New 空 0 字符串 |
获取数组中元素的值有哪些方法 | $arr[ 索引下标 ] $arr{ 索引下标 } |
有哪些方法可以实现数组的串行化,序列化 | serialize() |
遍历数组的多种方法,如何使用,各自区别 | 1)For 只能遍历数字数组
2)Foreach 可以遍历数字数组 关联数组 一般来说,foreach会比for快,因为for每次还需要先统计数组
3)While list each 两种都可以遍历 但是指针不会reset
4)Array_walk array_map
5)Current next |
For && for each 谁更快,为什么 | 遍历数组还是用foreach吧,毕竟不用先统计数组。 |
PHP数组在底层实现上是什么结构 | 1)使用了两个数据结构,一个是hashtable,一个是bucket;
2)hashtable结构体用于保存整个数组的基本信息;
3)Bucket结构体用于保存具体的数据内容; |
位运算 《》 | $a = 1; => 00000001 $b = 2; => 00000010
1)& 均为1时,才为1,否则为0 2)^ 不同为1,相同为0 3)| 有1为1,全0为0 4)$a << $b 向左移动 $b => a*(2^n) 5)$a>>$b 向右移动 $b => a/(2^n) |
错误报告级别 | error_reporting( ) |
php数组排序的原理 | 数组排序不会改变数组中的元素 只是改变数组元素的位置 对底层而言,实际上是对全局的双链表进行排序 |
数组排序函数的一般特点 | 需要额外的空间,因而应该尽量避免对很大的数组排序,底层使用的是快速排序。 1)申请额外的临时空间 2)遍历双链表,将双链表的每个节点存放到临时表空间 3)内部使用快速排序算法,对数组排序 4)排序之后,双链表的节点位置发生了变化,需要调整指针的指向 |
数据库实体之间的三种对应关系 | 1)一对一 用户表
2)一对多 多一个id 产品表 产品类型表
3)多对多 中间的关联表 订单表 产品表 订单详情表(中间表) 订单id 产品id 数量 |
Git的相关命令 | Git init Git add Git commit -m
Git remote Git pull Git push
Git status Git diff Git log Git reset Git reflog |
Mysql关联查询语句的种类 | 交叉连接 cross join 内连接 inner join 外连接 left/right join 联合查询 union all 全连接 full join |
外连接 | Left join 以左表为主,先查询出左表,按照on后的关联条件匹配出右表,没有匹配到的用null填充
Right join 以右边为主,先查询出右表,按照on后的关联条件匹配出左表,没有匹配到的用null填充 |
Mvc工作原理,优缺点 | M 数据的模型层,是对数据库进行相关操作
视图层,与用户进行视觉上的交互
C 业务逻辑层 |
单一入口的工作原理 | 用一个处理程序文件处理所有的http请求,根据请求时的参数区分不同的模块和操作的请求 |
单一入口的优势,劣势 | 1)可以进行统一的安全性检查
2)集中处理程序 |
模板引擎的理解,工作原理 | Php是一种内嵌在html的服务器端的脚本语言,但是在php有很多可以使php代码和html代码分开的模板引擎 |
GD库 | 处理图片 验证码需要开启 |
$_FILES[][] Name 0 | Name 上传的文件名 Type 上传的文件类型 Size 上传的文件大小 Tmp_name 上传文件在服务器上的临时保存文件地址 Error 错误号 |
$_FILES[][‘error’] | 0 正确 1 文件超过php.ini允许的最大值 2 文件超过表单允许的最大值 3 只有部分文件上传 4 没有文件上传 6 找不到临时文件 7 写入失败 |
允许上传文件的大小(php.ini中配置) | Upload_max_filesize = 2M |
Post提交允许的最大的值(php.ini中配置) | Post_max_size = 8M; |
允许文件上传(php.ini中配置) | File_upload = on |
临时文件保存的目录(php.ini中配置) | Upload_tmp_dir |
允许同时上传20个文件(php.ini中配置) | Max_file_upload = 20 |
文件上传的大小一般受到的限制 | 服务器端,负责接收 Post_max_size = 8M;
浏览器端,负责上传 Upload_max_filesize = 2M; |
|
|
数组和数据结构之“栈” | 后进后出 $stack = array( 34 , 75 , 321); $item = array_pop($stack); 出栈 array_push($stack , $item); 入栈 |
数组和数据结构之“队列” | 先进先出 $queue = array( 2, 3, 4 ,5 ,6); Array_push($queue , 7); 入队 $item = array_shift($queue); 出队 |
数组 | 1)根据值/数组,寻找键 Array_keys_exists( $key , $arr ) 键是否存在
$a = array("Volvo"=>"XC90","BMW"=>"X5");
Array_keys( $arr ) 找出所有的键
$a = array( "Volvo"=>"XC90","BMW"=>"X5","Toyota"=>"Highlander" );
Array ( [0] => Volvo [1] => BMW [2] => Toyota )
Key( $value ) 根据值找出对应的所有键
$array = array(
fruit1 fruit4 fruit5
Array_search( $value ,$arr ) 根据值找键
$array = array("a"=>"red","b"=>"green","c"=>"blue"); // a
2)寻找值 Array_values($arr ) 找出所有的值
$a = array("Name"=>"Peter","Age"=>"41","Country"=>"USA"); Array ( [0] => Peter [1] => 41 [2] => USA )
In_array( $value , $arr ) 判断值是否在数组中
$sites = array("Google", "Runoob", "Taobao", "Facebook");
if (in_array("Runoob", $sites)) { echo "找到匹配项!"; } else { echo "没有找到匹配项!"; } 找到匹配项!
3)合并数组 Array_combine( $key , $value )
$fname = array("Peter","Ben","Joe");
Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )
Array_merge()
Array_merge_recursive()
Array_fill( index 下标, num数量 , value值 )
$a1=array_fill(3,4,"blue");
Array ( [3] => blue [4] => blue [5] => blue [6] => blue )
Array_pad( $arr 数组, num一共的数量 , value值 )
$a = array( "red" , "green" ); print_r(array_pad($a,5,"blue"));
Array ( [0] => red ,[1] => green, [2] => blue, [3] => blue, [4] => blue )
4)比较数组 Array_diff() 对比值
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $a2=array("e"=>"red","f"=>"green","g"=>"blue"); $result=array_diff($a1,$a2); print_r($result); //"d"=>"yellow"
Array_diff_assoc() 对比键值
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); //Array ( [a] => red [b] => green [c] => blue [d] => yellow )
Array_intersect() 交集,取公有的
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow");
//Array ( [a] => red [b] => green [c] => blue )
5)队列 Array_pop() 尾部弹出
$a = array( "red","green","blue" ); Array ( [0] => red [1] => green )
array_push( $arr , $value1 , $value2..) 尾部插入
$a = array("red","green"); Array ( [0] => red ,[1] => green, [2] => blue ,[3] => yellow )
Array_shift() 删除头部
$a = array( "a"=>"red","b"=>"green","c"=>"blue" ); // red
// Array ( [b] => green [c] => blue )
Array_unshift() 尾部弹出
6)数组过滤 Array_filter( 数组,函数表达式)
function test_odd($var) // Array ( [3] => 3 )
Array_unique()
$a=array("a"=>"red","b"=>"green","c"=>"red"); Array ( [a] => red [b] => green )
7)数组顺序 Array_rand( $arr数组 , num数量 ) 返回随机的键
$a = array( "a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow" );
//C
Array_reverse()
$a = array( "a"=>"Volvo", "b"=>"BMW", "c"=>"Toyota" );
Array ( [c] => Toyota [b] => BMW [a] => Volvo )
Array_multisort( $arr1 , $arr2 , ..) ???
$a1 = array("Dog","Cat");
Range( 小 ,大)
$number = range(0,5); Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 )
Shuffle( $arr ) 把数组打乱
$my_array = array("red","green","blue","yellow","purple");
Array ( [0] => blue [1] => green [2] => yellow [3] => red [4] => purple )
8)替换,截取 Array_replace()
$a1 = array( "a"=>"red","b"=>"green" ); //Array ( [a] => orange [b] => green [0] => burgundy )
Array_slice()
$a=array("red","green","blue","yellow","brown"); //Array ( [0] => blue [1] => yellow [2] => brown )
Array_splice()
$a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); Array ( [0] => purple [1] => orange [c] => blue [d] => yellow )
9)计算 Array_sum()
$a=array(5,15,25); //45
Count()
$cars=array("Volvo","BMW","Toyota");
10)排序 Sort()
$cars = array("Volvo","BMW","Toyota"); $clength = count($cars); BMW
Rsort()
$cars=array("Volvo","BMW","Toyota");
Volvo
Asort()
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
Key=Peter, Value=35
Arsort()
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); Key=Joe, Value=43
Krsort() $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
Key=Peter, Value=35
Ksort() $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); Key=Ben, Value=37
Uasort()
Uksort()
Usort()
|
| 键 值 合并 计算 顺序 排序 队列 比较 过滤 替换,截取 |
03-27
03-27
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交