数组
- int array_shift($arr) ------------ 从数组元素pop第一个元素
int array_unshift($arr, $var) --------- 向数组头部插入一个元素 i
2. current($arr) -------------返回当前数组元素的值
类似的数组函数还有 end($arr)-----返回数组最后一个元素的值 next($arr) ----- 返回数组当前的下一个元素值 prev($arr) -----返回当前数组的上一个元素值 reset($arr) ----- 重新将数组指针指向首元素 each($arr) ---- 返回当前元素的键名和键值,并将内部指针向前移动(在php 7.2.0中each废弃了)
<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland");
echo current($people) . "<br>"; //Peter
echo next($people) . "<br>"; //Joe 指针指向Joe
echo prev($people) . "<br>"; //Peter 指针指向上一个 Peter
echo end($people) . "<br>"; //Cleveland 指针指向最后一个元素
echo reset($people); //Peter 指针重置指向首元素
?>
3.查找
bool in_array(value,array,type)----------查找数组中的某个值是否存在 返回bool
key array_search(value,array,strict) ------ 查找数组中某个值是否存在 并返回键名
4.初始化/填充
最近需要先初始化一个n长度的数组,需要初始化键值为0,想到了C的malloc 搜了半天没有看到 无意中看到了array_fill() 填充数组,记录一下
array array_fill($index, $len, $value) ------------从下标index开始 长度为len的数组赋予value的值 index也就是返回的数组键是从index开始计数
5. 排序
php的数组排序 sort ksort
int(bool) sort ($arr) ------ 将键值进行排序 排序后的键值关系发生变化
int(bool) ksort($arr) -------将键进行排序 排序后的键值关系不发生变化
相反的降序 int(bool) rsort($arr) ------------将键值进行降序排序 排序后的键值发生变化
注意 起始键从1 变成了 0
int(bool) krsort($arr) ------------------ 将键进行降序排序 排序后的键值关系不变
上面的sort和rsort都会将键值对于关系修改 那么 asort 和arsort则是根据键值升(降)进行排序 排序后的键值关系不发生变化
6. array array_filp($arr) -------------- 将数组的键值交换
<?php
$arr = ['qqq' => 'qq', 'www' => 'ww', 'eee' => 'ee'];
print_r(array_flip($arr));exit;
结果:
7. array_merge($arr1, $arr2, $arr3... ) 将多个数组合并为一个
***** array + array 和array_merge区别 1>>> 若合并有键名冲突,merge会覆盖之前的键 而array + array 则不会
8. explode 字符串 === 》 数组
implode 数组 ====》字符串
9. array_slice($arr, offset, length) 从数组arr第offset个元素开始,取length个元素,返回为数组类型
10. serialize() & unserialize() 序列化和反序列化 作用:将数组/对象类型序列化为字符,反序列和其相反 场景:需要将一个数组/对象存入文本中,可以先序列化,存储,之后读取先反序列化。
11. array array_count_values(array) 统计数组中所有值出现的次数。
$a=array("A","Cat","Dog","A","Dog");
print_r(array_count_values($a));
// Array ( [A] => 2 [Cat] => 1 [Dog] => 2 )
12. bool array_key_exists(key,array) 键存在返回true 不存在返回false
字符串
1. substr ------------- 字符串截取
string substr($arr, start, length) 从arr中从start(为正从头开始,为负从尾部开始) 截取到length的长度(为正和开始方向相同 为负和开始方向相反)
<?php
$str = '123456789';
$retStr = substr($str, 0); // 返回全部字符串
echo "$retStr" . "<br>"; // 123456789
$retStr = substr($str, 0 ,3); // 从首部0标 截取长度为3 的字符串返回
echo "$retStr" . "<br>"; // 123
$retStr = substr($str, 0, -1); // 从首部0标,截取到从尾部开始的1长度的下标
echo "$retStr" . "<br>"; // 12345678
$retStr = substr($str, -3, -1); //从尾部向首部第三个元素 7 开始 向尾部-1位置截取
echo "$retStr" . "<br>"; exit; // 78
2. str_pad 字符串填充
str_pad(string,length,pad_string,pad_type) ---------- string操作字符串 length 填充长度 pad_string 填充的字符串 pad_type 填充方向 左侧/右侧
STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。 STR_PAD_LEFT - 填充字符串的左侧STR_PAD_RIGHT - 填充字符串的右侧。默认
<?php
$str = '123';
$str1 = str_pad($str, 5, '456');
print($str1); echo "<br>"; //12345
$str2 = str_pad($str, 6, '0');
print($str2);echo "<br>"; //123000
$str2 = str_pad($str, -1, '456');
print($str2);exit; // 123
3.strrev(); 反转字符串
文件操作
1. dirname($path) 函数返回路径中的目录部分。即返回去掉文件名后的目录名。
basename($path) 函数返回路径中的文件名部分。
2.
- "r" (只读方式打开,将文件指针指向文件头)
- "r+" (读写方式打开,将文件指针指向文件头)
- "w" (写入方式打开,清除文件内容,如果文件不存在则尝试创建之)
- "w+" (读写方式打开,清除文件内容,如果文件不存在则尝试创建之)
- "a" (写入方式打开,将文件指针指向文件末尾进行写入,如果文件不存在则尝试创建之)
- "a+" (读写方式打开,通过将文件指针指向文件末尾进行写入来保存文件内容)
- "x" (创建一个新的文件并以写入方式打开,如果文件已存在则返回 FALSE 和一个错误)
- "x+" (创建一个新的文件并以读写方式打开,如果文件已存在则返回 FALSE 和一个错误
3. file_exists() 判断文件是否存在
feof($file) 文件结尾判断 fgets($file) 读取文件的一行
4. file_get_content($path) 获取文件的内容
file_put_content($path) 向文件内写入内容
其他
1. bindec ---------------- 二进制转 十进制
decbin --------------- 十进制转 二进制
<?php
echo bindec("0011") . "<br>"; // 3
echo bindec("01") . "<br>"; // 1
echo bindec("11000110011") . "<br>"; // 1587
echo bindec("111"); // 7
echo decbin("3") . "<br>"; // 11
echo decbin("1") . "<br>"; // 1
echo decbin("1587") . "<br>"; // 11000110011
echo decbin("7"); // 111
2. serialize 将对象或者数组转换为序列化 方便存储在其他地方 eg:将php数组存储在file文件中,可以先序列化存储,读取时可以反序列化后读取出
unserialize 将序列化后的内容转为之前格式,mix格式,序列化之前是什么格式,返回什么格式
<?php
$sites = array('Google', 'Runoob', 'Facebook');
$serialized_data = serialize($sites);
echo $serialized_data . PHP_EOL;
// a:3:{i:0;s:6:"Google";i:1;s:6:"Runoob";i:2;s:8:"Facebook";}
$unserialized_data = unserialize($str);
print_r($unserialized_data);
// Array
// (
// [0] => Google
// [1] => Runoob
// [2] => Facebook
// )
?>