批改状态:合格
老师批语:
| 方法 | 含义 |
|---|---|
| call_user_func() | 函数名称,参数列表 |
| call_user_func_array() | 函数名称,[参数数组] |

匿名函数作为回调函数的参数

php单线程,同步执行,如果遇到耗时函数会发生阻塞,应该将它改为异步回调执行,异步回调方法call_user_func()

步回调方法call_user_func_array()
<?php/*** 递归函数 函数自身调用自身,* 但必须在调用自身前有条件判断,否则无限无限调用下去。*///声明缓存目录function delete_dir_file($dir){//声明一个初始状态,我们用来检测缓存是否被删除$res = false;//is_dir 判断目录是否真实存在,如果存在返回true,不存在返回falseif (is_dir($dir)) {//opendir 打开目录流,声明一个变量等于这个目录流if ($handle = opendir($dir)) {//readdir 从目录句柄中读取条目,返回目录中下一个文件夹的文件名,文件名在系统文件中的排序方式返回//用while循环来一级一级的寻找目录最底层的文件并且删除//声明一个变量来保存条目句柄while ($file = readdir($handle) !== false ) {if ($file != '.' && $file != '..') {//判断是否还有下一个文件夹,如果没有则删除if (is_dir($dir.'\\'.$file)) {delete_dir_file($dir."\\".$file);}else {//unlink只能删除一个文件unlink($dir.'\\'.$file);}}}}//closedir关闭目录句柄closedir($handle);//目录只有为空的情况下才能被直接删除//rmdir 删除空目录if(rmdir($dir)){$res = true;}}return $res;}//判断里面的初始值是否真实为true// if ($res) {// echo "缓存已删除";// }//获取当前文件路径$_0429_dir = __DIR__;//把当前文件路径传入函数中delete_dir_file($_0429_dir);

索引数组, 键是从0开始递增的正整数

关联数组 键是”语义化” 字符串 如 id email username

多维数组是数组里面的值也是一个数组

foreach 遍历多维数组,获取多维数组里面的name值
| 系统预定义函数 | 含义 |
|---|---|
| range(shift,end,X跨越) | 快速创建数组 |
| array_unshift(array,name) | 从数组头部添加 |
| array_push(array,name) | 从数组尾部添加 |
| array_shift(array) | 从数组头部删除,有返回值 |
| array_pop(array) | 从数组尾部删除,有返回值 |
| array_splice(array,shift,end) | 从数组任意位置删除,有返回值 |






| 系统预定义函数 | 含义 |
|---|---|
| array_keys(array) | 获取数组中的键,组成新的数组 |
| array_key_exists(name,array) | 检查数组里是否有指定的键名或索引 |
| array_search(name,array,boler) | 搜索指定的值,返回的是这个值对应的键 |
| in_array(name,arr) | 检查数组中是否存在某个值 |
| array_values() | 返回数组中所有的值并给其重新建立数字索引 |





| 数组回调函数 | 含义 |
|---|---|
| array_walk(arr,callback,userdata) | 使用用户自定义函数对数组中的每个元素做回调处理,功时返回 true, 或者在失败时返回 false |
| array_map(callback,array,arrays) | 是为 array 每个元素应用 callback函数之后的数组。 array_map() 返回一个 array,数组内容为 array1 的元素按索引顺序为参数调用 callback 后的结果(有更多数组时,还会传入 arrays 的元素)。 callback 函数形参的数量必须匹配 array_map() 实参中数组的数量。 |
| array_filter(array,callback,mode) | 遍历 array 数组中的每个值,并将每个值传递给 callback 回调函数。 如果 callback 回调函数返回 true,则将 array 数组中的当前值返回到结果 array 数组中。 |



过滤数组,过滤空值或指定的值,不传函数就是过滤空值

<?php//二维数组里的键值name换成user ,其他保持不变$data = [['name'=>'zhangdan','id'=>2],['name'=>'lisi','id'=>1]];// array_walk 遍历数组array_walk($data,function(&$item,$key,$value){$item[$value] = $item['name'];unset($item['name']);},'user');echo "<pre>";print_r($data);

<?php//生成一个由1-100组成的数组,要求返回该数组中的偶数组成的新数组,并且新数组的索引从0开始//range 生成一个1-100的数组$arr = range(1,100);//array_filter 过滤数组//array_values 返回数组所有值,并且重新赋值数字索引$res = array_values(array_filter($arr,function($item){if ($item %2 != true) {return $item ;}}));echo "<pre>";print_r($res);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号