博主信息
博文 41
粉丝 2
评论 0
访问量 37553
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
php之数组键名更换,快速生成数组与数组过滤
月光下,遗忘黑暗
原创
876人浏览过

代码块

  1. <?php
  2. /**
  3. * 回调函数
  4. */
  5. $fun = function ($a,$b) {
  6. return $a+$b;
  7. };
  8. //Closure闭包
  9. function test(Closure $callback)
  10. {
  11. $a = 10;
  12. $b = 20;
  13. echo $callback($a,$b);
  14. }
  15. test($fun);
  16. echo "<hr>";
  17. //单线程函数改成异步回调执行
  18. function test2(string $name):string
  19. {
  20. return 'hello'.$name;
  21. }
  22. echo call_user_func('test2','chentuan')."<hr>";
  23. echo call_user_func_array('test2',['333'])."<hr>";
  24. //回调一个全局函数
  25. //类方法的异步调用
  26. class User
  27. {
  28. public function hello(string $name):string
  29. {
  30. return 'hello'.$name;
  31. }
  32. public static function say($site)
  33. {
  34. return 'welcome'.$site;
  35. }
  36. }
  37. echo call_user_func_array([new User(),'hello'],['张三'])."<hr>";
  38. echo call_user_func_array("User::say",['张三'])."<hr>";
  39. /**
  40. * 递归函数
  41. * 函数自身调用自己
  42. * 需要一定的条件判断
  43. */
  44. function delete_dir_file($dir)
  45. {
  46. $init = false;
  47. if (is_dir($dir))
  48. {
  49. //成功打开目录流
  50. if ($handle = opendir($dir))
  51. {
  52. while(($file = readdir($handle)) !== false)
  53. {
  54. // echo $file."<br>";
  55. //判断子目录是否合法
  56. if ($file != '.' && $file != '..')
  57. {
  58. if (is_dir($dir.'\\'.$file))
  59. {
  60. delete_dir_file($dir.'\\'.$file);
  61. //检测到file是文件属于else
  62. } else {
  63. // unlink()删除文件
  64. unlink($dir.'\\'.$file);
  65. }
  66. }
  67. }
  68. }
  69. //关掉目录句柄
  70. closedir($handle);
  71. echo $dir;die;
  72. if (rmdir($dir))
  73. {
  74. $init = true;
  75. }
  76. }
  77. return $init;
  78. }
  79. $path = __DIR__;
  80. echo $path."<hr>";
  81. //$res = delete_dir_file($path);
  82. //if ($res) echo "目录删除成功";
  83. /**
  84. * 数组
  85. */
  86. /**
  87. * 如何将以下二维数组里的键值name换成user ,其他保持不变
  88. */
  89. $data = [['name'=>'zhangdan','id'=>2],['name'=>'lisi','id'=>1]];
  90. $arr = [];
  91. foreach ($data as $s => $v) {
  92. $arr[$s]['user'] = $data[$s]['name'];
  93. $arr[$s]['id'] = $data[$s]['id'];
  94. }
  95. echo "<pre>";
  96. $data = $arr;
  97. print_r($data);
  98. /**
  99. * 生成一个由1-100组成的数组,要求返回该数组中的偶数组成的新数组,并且新数组的索引从0开始
  100. */
  101. //快速创建数组
  102. $arr = range(1,100);
  103. $arr = array_filter($arr,function ($v){
  104. if ($v%2==0) return $v;
  105. });
  106. print_r($arr);

效果图

批改老师:灭绝师太灭绝师太

批改状态:合格

老师批语:新数组的索引从0开始,最后再用array_values排列下数组索引
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学