Blogger Information
Blog 145
fans 7
comment 7
visits 164815
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
02月20日:数组常见函数
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
Original
814 people have browsed it

作业:

1、代码演示:

  1. <?php
  2. // 和数组键有关的函数
  3. $arr = ['id'=>1, 'username'=>'admin', 'email'=>'admin@php.cn'];
  4. echo '<pre>'.print_r($arr,true).'</pre>';
  5. echo '<pre>'.print_r(array_keys($arr),true).'</pre>';
  6. var_dump(array_key_exists('id',$arr));
  7. echo '<br>';
  8. var_dump(array_key_last($arr));
  9. echo '<br>';
  10. var_dump(array_key_first($arr));
  11. echo '<hr>';
  12. // 和数组有关的函数
  13. $arr = [3=>10, 9=>20, 0=>'html', 'id'=>'css', 20=>20, 10=>30];
  14. echo '<pre>'.print_r($arr,true).'</pre>';
  15. echo '<pre>'.print_r(array_values($arr),true).'</pre>';
  16. var_dump(in_array(20,$arr));
  17. echo '<br>';
  18. var_dump(array_search('css',$arr));
  19. echo '<pre>'.print_r(array_unique($arr),true).'</pre>';
  20. echo '<hr>';
  21. // 统计数组统计有关的函数
  22. var_dump(count($arr));
  23. echo '<br>';
  24. var_dump(array_count_values($arr));
  25. echo '<br>';
  26. $arr = [10, 20, 30];
  27. echo array_sum($arr);
  28. echo '<br>';
  29. echo array_product($arr);
  30. echo '<hr>';
  31. //栈和对列的操作:栈后进先出,队列先进先出
  32. $stack=[];
  33. array_push($stack,0,1);
  34. array_push($stack,[2,3,4]);
  35. echo '<pre>'.print_r($stack,true).'</pre>';
  36. array_pop($stack);
  37. echo '<pre>'.print_r($stack,true).'</pre>';
  38. echo '……………………………………………………………………………………………………';
  39. array_unshift($stack,'one','two');
  40. echo '<pre>'.print_r($stack,true).'</pre>';
  41. array_shift($stack);
  42. echo '<pre>'.print_r($stack,true).'</pre>';
  43. echo '<hr>';
  44. $arr = [30, 4, 82, 15, 20, 'abc', 'hello', 2, 46];
  45. echo '<pre>'.print_r($arr,true).'</pre>';
  46. // sort($arr);
  47. // echo '<pre>'.print_r($arr,true).'</pre>';
  48. // rsort($arr);
  49. // echo '<pre>'.print_r($arr,true).'</pre>';
  50. // asort($arr);
  51. // echo '<pre>'.print_r($arr,true).'</pre>';
  52. // arsort($arr);
  53. // echo '<h1>arsort</h1>';
  54. // echo '<pre>'.print_r($arr,true).'</pre>';
  55. $arr = ['e'=>10, 'a'=>30, 'p'=>50];
  56. ksort($arr);
  57. echo '<pre>'.print_r($arr,true).'</pre>';
  58. krsort($arr);
  59. echo '<pre>'.print_r($arr,true).'</pre>';
  60. $arr = ['img1.jpg', 'img5.jpg', 'img10.jpg', 'img8.jpg'];
  61. echo '<pre>'.print_r($arr,true).'</pre>';
  62. natsort($arr);
  63. echo '<pre>'.print_r($arr,true).'</pre>';
  64. echo '<hr>';
  65. $arr = ['id'=>109, 'username'=>'peter', 'age'=> 27, 'salary'=>99999];
  66. print_r($arr);
  67. shuffle($arr);
  68. // print_r($arr);
  69. // print_r(array_reverse($arr));
  70. // print_r(array_flip($arr));
  71. print_r($arr); echo '<hr>';

1、演示结果图:

2、代码:

  1. <?php
  2. $arr= ['Apple', 'Dell', 'Lenovo', 'Hp', 'ThinkPad', 'Huawei', 'Xiaomi'];
  3. // print_r($arr);
  4. // echo '<br>';
  5. // print_r(array_slice($arr,1,3));
  6. // print_r(array_splice($arr,3));
  7. // print_r(array_splice($arr,3,2));
  8. // print_r(array_splice($arr,3,2,['Acer','ASUS']));
  9. // print_r(array_rand($arr,3));默认为一个;
  10. $arr = [
  11. ['id'=>101, 'name'=>'jack', 'age'=>20],
  12. ['id'=>102, 'name'=>'mike', 'age'=>30],
  13. ['id'=>103, 'name'=>'pony', 'age'=>40],
  14. ];
  15. // print_r($arr);
  16. // echo '<hr>';
  17. // print_r(array_column($arr,'name'));
  18. // print_r(array_column($arr,'age','name'));
  19. $arr = ['type'=>'mysql', 'host'=>'localhost', 'username'=>'root', 'password'=>'root'];
  20. $arr1 = ['host'=>'127.0.0.1', 'username'=>'admin','age'=>5];
  21. $arr2 = ['username'=>'peter', 'password'=>'123456'];
  22. print_r(array_replace($arr,$arr1));
  23. print_r(array_replace($arr,$arr1,$arr2));
  24. echo '<hr>';
  25. $arr1 = [10, 20, 30, 40, 60];
  26. $arr2 = [1, 20, 30, 5];
  27. print_r(array_intersect($arr1, $arr2)); echo '<hr>';
  28. // array_diff(),保留第一个数组中不一样的;
  29. print_r(array_diff($arr1,$arr2));
  30. echo '<hr>';
  31. // array_combine():通过合并两个数组来创建一个新数组(第一个数组元素界面);两个数组的数量一样;
  32. $keys = ['type', 'host', 'dbname', 'username', 'password'];
  33. $values = ['mysql', 'localhost', 'phpedu', 'root', 'root'];
  34. print_r(array_combine($keys,$values));
  35. echo '<hr>';
  36. //把一个或多个数组合并为一个新数组;
  37. $keys = ['type', 'host', 'dbname', 'username', 'password'];
  38. $values = ['mysql', 'localhost', 'phpedu', 'root', 'root'];
  39. $arr2 = [1, 20, 30, 5];
  40. // print_r(array_merge($keys,$values,$arr2));
  41. echo '<hr>';
  42. $arr1 = [10, 20, 30, 40, 60,21,23,44,56,43,56,12];
  43. echo '<pre>'.print_r(array_chunk($arr1,3)).'</pre>';

2、演示结果:

3、代码演示:

  1. <?php
  2. // print_r(array_fill(0,7,'A'));
  3. // print_r(array_fill(2,7,'A'));
  4. // echo '<hr>';
  5. //
  6. // print_r(array_fill_keys($keys, 'hello')); echo '<hr>';
  7. // $arr = ['apple', 'dell', 'thinkpad'];
  8. // print_r(array_pad($arr, 6, 'computer'));
  9. $values = ['id', 'name', 'age', 'hoppy'];
  10. list($id,$name,$age,$hoppy)=$values;
  11. echo "$id,$name,$age,$hoppy";
  12. $str=implode('=',$values);
  13. echo $str;
  14. print_r(explode('=',$str));
  15. $data = ['id'=>1,'name'=>'ldy','age'=>31,'hoppy'=>'跑步'];
  16. extract($data);
  17. echo $id,$name,$age,$hoppy;
  18. $id = 99;
  19. $name = 'Peter Zhu';
  20. $job = 'Lecture';
  21. $data1=compact('id','name','job');
  22. print_r($data1);
  23. echo '<hr>';
  24. $keys = ['host', 'username', 'password'];
  25. $values = ['localhost', 'admin', '666888'];
  26. $result = array_map(function ($value1, $value2) {
  27. return [$value1=>$value2];
  28. }, $keys, $values);
  29. echo '<pre>'.print_r($result,true).'</pre>';
  30. // $results=[];
  31. // foreach($result as $arr){
  32. // $results[current($arr)]=key($arr);
  33. // }
  34. // // print_r($result);
  35. // print_r($results);
  36. $res = array_reduce($result, function ($prev, $current) {
  37. // 获取当前元素的键值
  38. $key = key($current);
  39. $value = current($current);
  40. // 拼装成一个元素并返回
  41. $prev[$key] = $value;
  42. return $prev;
  43. });
  44. print_r($res);

3、演示结果:

作业二 常用数组函数大全

1. 键名相关

  • array_keys: 获取所有键名组成的数组
  • array_key_exists: 是否存在指定键名
  • array_key_last“ 获取最后一个键名php7.3+
  • array_key_first: 获取第一个键名php7.3+

2. 与值相关

  • array_values: 返回数组中所有值组成的数组
  • in_array: 检查数组中是否存在某个值
  • array_search: 搜索指定的值,返回键名
  • array_unique: 删除重复的值

3. 与统计相关

  • count: 统计元素数量或对象属性数量
  • array_count_values: 统计所有值的出现频率

4. 与计算相关

  • array_sum 对数组中所有值求和
  • array_product: 计算数组中所有值的乘积

5. 栈与队列

  • array_push: 从尾部添加一个或多个元素
  • array_pop: 从尾部删除最后一个元素
  • array_unshift: 从头部添加一个或多个元素
  • array_shift: 从头部删除一个元素

6. 排序

6.1 对值排序

  • sort: 按值升序排序, 索引重排
  • asort: 按值升序排序, 索引保持不变
  • rsort: 按值降序排序, 索引重排
  • arsort: 按值降序排序, 索引保持不变

6.2对键排序

  • ksort: 按键名升序排序
  • krsort: 按键名降序排序

6.3 自定义排序

  • usort: 自定义函数对值进行排序
  • uasort: 自定义函数对值排序并保持索引不变
  • uksort: 自定义函数对键名进行排序

6.4 自然排序

  • natsort: 支持数字型字符串排序
  • natcasesort: 不区分大小写

6.5 乱序反转

  • shuffle: 随机打乱一个数组的顺序
  • array_flip: 交换数组中的键和值
  • array_reverse: 反转一个数组

7. 查询与替换

  • array_slice: 从数组中取出一部分
  • array_splice: 去掉数组中一部分并用其它值代替
  • array_rand: 从数组中随机取出一个或多个元素的键名
  • array_column: 获取多维数组中一列组成的新数组
  • array_replace 使用后面数组的值替换第一个数组的值
  • array_replace_recursive 使用传递的数组递归替换第一个数组的元素
  • array_intersect: 计算数组的交集
  • array_intersect_assoc: 返回数组交集,键名也做比较
  • array_diff:返回数组的差集
  • array_diff_assoc: 返回数组差集,键名也做比较

8. 分割与合并

  • array_combine: 通过合并两个数组来创建一个新数组
  • array_merge: 把一个或多个数组合并为一个数组
  • array_chunk: 将一个数组分割成多个子数组

9. 数组指针

  • current: 获取当前元素的值
  • key: 获取当前元素的键名
  • next: 将数组中的内部指针向前移动一位
  • prev: 将数组的内部指针倒回一位
  • end: 将数组的内部指针指向最后一个单元
  • reset: 将数组的内部指针指向第一个单元

10. 自动生成

  • array_fill: 用给定的值填充数组
  • array_fill_keys: 使用指定的键和值填充数组
  • array_pad: 以指定长度将一个值填充进数组

11. 类型转换

  • list: 将数组中的值赋予一组变量(类似解构赋值)
  • implode: 将数组元素按指定字符拼装成字符串
  • explode: 将字符串分割为数组
  • extract: 将关联数组拆分成变量名值对
  • compact: 将一组变量名值对拼装成一个关联数组键值对

12. 回调处理

  • array_filter: 用回调函数过滤数组中的单元
  • array_map: 为数组的每个元素应用回调函数
  • array_reduce: 使用用户自定义函数对数组中的每个元素做回调处理
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:不必提交这么多函数用法的 , 你只需要将你认为比较难,有用的提交就可以, 更多本机完成即可
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post