博客列表 >PHP常用数组函数 - - PHP中文网线上班0424

PHP常用数组函数 - - PHP中文网线上班0424

高的PHP十期培训学习笔记
高的PHP十期培训学习笔记原创
2020年05月22日 15:22:36764浏览

PHP常用数组函数

explode():使用一个字符串分割另一个字符串,并返回由字符串组成的索引数组

  1. $str = 'one----two----three----four';
  2. // 返回包含一个元素的数组
  3. print_r(explode('----',$str,0));
  4. print "<br>";
  5. // 数组元素为 2
  6. print_r(explode('----',$str,2));
  7. print "<br>";
  8. // 删除最后一个数组元素
  9. print_r(explode('----',$str,-1));

implode():将一个数组内的所有元素按照某个指定的规则,拼接成一个字符串

  1. $arr = ['one','two','three','four'];
  2. echo implode(" ",$arr)."<br>";
  3. echo implode("----",$arr)."<br>";
  4. echo implode("####",$arr)."<br>";
  5. echo implode("X",$arr);

array_keys():获取一个数组的所有键名,返回一个索引数组

  1. $arr = [3=>10, 9=> 20, 0 => 'html', 'id' => 'css', 20 => 20, 30];
  2. print_r(array_keys($arr));

array_array_values():获取一个数组的所有值,返回一个索引数组,会将键名重置

  1. $arr = [3=>10, 9=> 20, 0 => 'html', 'id' => 'css', 20 => 20, 30];
  2. print_r(array_values($arr));

in_array($search, $arr): 检查某个元素是否存在于指定的数组中

  1. $arr = [3=>10, 9=> 20, 0 => 'html', 'id' => 'css', 20 => 20, 30];
  2. echo (in_array('html5', $arr) ? '存在' : '没有') . '<br>';

array_search($search, $arr): 搜索指定的值, 返回的是键名

  1. echo $key = array_search('css', $arr);

array_unique($arr): 删除重复的值, “去重”函数

  1. print_r( array_unique($arr));

count(): 非数组返回1,是数组返回成员数量

  1. $arr = [3=>10, 9=> 20, 0 => 'html', 'id' => 'css', 20 => 20, 30];
  2. // $arr = 'aaa';
  3. echo count($arr);
  4. echo '<hr>';


array_count_values($arr): 统计数组中某个值的出现的频率

  1. $arr = [3=>10, 9=> 20, 0 => 'html', 'id' => 'css', 20 => 20, 30];
  2. $res = array_count_values($arr);
  3. printf('<pre>%s</pre>', print_r($res,true));

array_sum():求和
array_product():乘积

查询与替换

array_slice() 返回数组中的选定的部分内容

  1. $a =['一年级','二年级','三年级','四年级','五年级'];
  2. print_r(array_slice($a,0));
  3. echo '<hr>';
  4. // 获取前2个
  5. print_r(array_slice($a, 0, 2));
  6. echo '<hr>';
  7. // 从第2个索引开始取3个
  8. print_r(array_slice($a, 1, 3));
  9. echo '<hr>';
  10. // 第2个参数支持负数
  11. print_r(array_slice($a, -3, 2));

array_splice():从数组中删除选定的元素,并用新元素取代它,可以实现对数组的替换\删除\添加\更新

  1. $a =['一年级','二年级','三年级','四年级','五年级'];
  2. // 删除元素
  3. // array_splice($a, 起始索引, 删除数量), 返回的是被删除元素组成的数组
  4. $res=array_splice($a, 1, 2);
  5. printf('<pre>%s</pre><hr>', print_r($res, true));
  6. // 替换功能
  7. $res=array_splice($a, 1, 2, ['初一', '初二']);
  8. // 添加
  9. $res=array_splice($a, 1, 0, ['初一', '初二']);
  10. // 负数
  11. $res=array_splice($a, -3, 2, ['初一', '初二']);
  12. printf('删除的元素: <pre>%s</pre><hr>', print_r($res, true));
  13. printf('结果: <pre>%s</pre><hr>', print_r($a, true));

数组回调函数处理

array_filter(): 用回调过滤数组中的单元,返回计算结果为true的元素组成的数组

  1. $array = [0 => 'admin',1 => false,2 => 1,3 => null,4 => '',5 => '电脑',6 => '0'];
  2. print_r(array_filter($array));

array_map(): 为数组中的每个元素应用回调函数进行处理,返回新数组

  1. $array = ['admin','三年级','电脑',['初一', '初二']];
  2. $res = array_map(function($item){
  3. // 将对象和数组拉平
  4. switch (gettype($item)) {
  5. case 'array':
  6. $item = implode(', ', $item);
  7. }
  8. return $item;
  9. }, $array);
  10. printf('<pre>%s</pre><hr>', print_r($res, true));

array_reduce(): 迭代处理数组元素

  1. $key = ['用户名', '密码', '邮箱'];
  2. $values = ['admin', 'abc123456', 'admin@php.com'];
  3. $res = array_map(function($value1, $value2) {
  4. return [$value1 => $value2];
  5. }, $key, $values);
  6. $res=array_reduce($res, function($prev, $current){
  7. // 获取当前元素的键
  8. $key = key($current);
  9. // 获取当前元素的值
  10. $value = current($current);
  11. // 拼装成键值对
  12. $prev[$key] = $value;
  13. return $prev;
  14. });
  15. printf('内置的数组迭代:<pre>%s</pre><hr>', print_r($res, true));

总结

数组排序(对值排序):
sort($arr):升序
asort($arr):升序,但索引不变
rsort($arr):降序
arsort($arr):升序,但索引不变

explode():使用一个字符串分割另一个字符串,并返回由字符串组成的索引数组
implode():将一个数组内的所有元素按照某个指定的规则,拼接成一个字符串
array_slice() 返回数组中的选定的部分内容
array_splice():从数组中删除选定的元素,并用新元素取代它,可以实现对数组的替换\删除\添加\更新
array_combine($key, $values):两个数组合并,返回一个新数组

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