博客列表 >php之数组键名更换,快速生成数组与数组过滤

php之数组键名更换,快速生成数组与数组过滤

月光下,遗忘黑暗
月光下,遗忘黑暗原创
2021年05月01日 17:17:36676浏览

代码块

  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);

效果图

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议