Blogger Information
Blog 25
fans 1
comment 1
visits 20458
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP常用数组函数 - - PHP中文网线上班0424
高的PHP十期培训学习笔记
Original
766 people have browsed it

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):两个数组合并,返回一个新数组

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