欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php数组函数实例教程详解

程序员文章站 2022-06-10 10:29:08
...
  1. $arr=array("name"=>"user1","age"=>"30","sex"=>"man");

  2. foreach($arr as $key=>$val){
  3. $keys[]=$key;
  4. $vals[]=$val;
  5. }
  6. echo "
    ";  
  7. print_r($keys);
  8. echo "";
  9. echo "
    ";
  10. echo "
    ";  
  11. print_r($vals);
  12. echo "";
  13. ?>

复制代码

2.array_values的使用

  1. $arr=array("name"=>"user1","age"=>"30","sex"=>"man");
  2. $keys=array_values($arr);
  3. echo "
    ";  
  4. print_r($keys);
  5. echo "";
  6. ?>
复制代码

array_values();//获取数组中的值 array_keys();//获取数组中的健 in_array();//检查一个值是否在数组中 array_key_exists();//检查一个键是否在数组中 array_flip();//键和值对调 array_reverse();数组中的值反转

统计数组的元素和唯一性 1.count(); 2.array_count_values();//统计数组中每个值出现的次数. 3.array_unique();//删除数组中的重复 使用回调函数处理数组的函数:

1.array_filter();

  1. $arr=array("user1"=>70,60,80,78,34,34,34,56,78,78);
  2. function older($var){
  3. return ($var>60);
  4. }
  5. $arr2=array_filter($arr,"older");
  6. echo "
    ";  
  7. print_r($arr2);
  8. echo "";
  9. ?>
复制代码

2.array_map(); 引用参数: 需求:数组值自加1

  1. function show(&$arr){
  2. foreach($arr as $key=>$val){
  3. $arr[$key]=$val+1;
  4. }
  5. }
复制代码

数组的排序函数 1.sort(); 升序,不保留key 2.rsort(); 降序 ,不保留key 3.asort(); 升序,保留key 4.arsort(); 降序,保留key 5.ksort();根据key排序 升序 6.krsort();根据key排序 降序 7.natsort();自然数排序 升序,比如图片img2.jpg 8.natcasesort();忽略大小写 升序排列 9.multisort();多数组排序 ksort();

  1. $arr=array("user1"=>10,"b"=>1,"c"=>3,"d"=>30);
  2. $arr2=array_flip($arr);
  3. ksort($arr2);
  4. echo "
    ";  
  5. print_r($arr2);
  6. echo "";
  7. ?>
复制代码

natsort();

  1. $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
  2. sort($array1);
  3. echo "Standard sorting\n";
  4. print_r($array1);
  5. natsort($array2);
  6. echo "\nNatural order sorting\n";
  7. print_r($array2);
  8. ?>
复制代码

多数组排序:

  1. $arr=array("aaa","bbbbbbbbb","cc","ddddd");
  2. //需求:
  3. //1.按照标题长度排序
  4. //2.标题长度变成标题字符串的key
  5. //将数组中的value的长度取出,并作为一个新数组
  6. //strlen($val)取出字符串的长度
  7. foreach ($arr as $val) {
  8. $lens[]=strlen($val);
  9. }
  10. array_multisort($lens,SORT_ASC,$arr);//对数组进行排序,根据第一个数组来排序第二个数组 SORT_ASC表示升序排序
  11. sort($lens);
  12. $arr2=array_combine($lens, $arr);//第一个数组作为第二个数组对应的key,返回一个新数组
  13. echo "
    ";  
  14. print_r($arr2);
  15. echo "";
  16. ?>
复制代码

拆分,合并,分解与结合函数 1.explode(); 2.inplode();//join(); 3.array_slice();数组的截取 4.array_splice();数组的裁剪 5.array-merge();合并多数组 6.array_combine();合并数组,两个数组,前一个数组作为key,后一个数组作为value 7.array_intersect();找出两个数组的交集 8.array_diff();找出两个数组的不同,根据第一个参数 9.array_pop();从最后弹出一个值,返回弹出值 10.array_push();从最后的位置压入一个值,返回元素的个数 11.array_shift();从洗前面的位置删除一个值 12.array_unshift();从最前的位置压入一个值

  1. $str="php,js,html,ces,div";
  2. $arr=explode(",",$str);
  3. echo "
    ";  
  4. print_r($arr);
  5. echo "";
  6. ?>
复制代码

2.inplode();将数组组合成为字符串

  1. $str="php,js,html,ces,div";

  2. $arr=explode(",",$str);
  3. $str2=implode("-",$arr);
  4. echo "
    ";  
  5. print_r($str2);
  6. echo "";
  7. ?>
  8. $str="php,js,html,ces,div";

  9. $arr=explode(",",$str);
  10. $arr2=array_reverse($arr);//讲数组中的值进行倒序
  11. $str2=implode("-",$arr2);
  12. echo "
    ";  
  13. print_r($str2);
  14. echo "";
  15. ?>
复制代码

array_slice();

  1. //截取总是从后往前截取
  2. $arr = array("aa","bb","cc","dd","ee","ff","gg");
  3. $arr2 = array_slice($arr, 0,2);//表示从0的位置截取2个 aa bb
  4. $arr3 = array_slice($arr, -3,2);//表示从后往前数到3的位置,开始截取2个//ee ff
  5. echo "
    ";  
  6. print_r($arr3);
  7. echo "";
  8. ?>
复制代码

不仅拆减,而且可以添加

  1. $arr = array("aa","bb","cc","dd","ee","ff","gg");
  2. $arr2 = array_splice($arr, 0, 3, array("hh","ii","jj","kk"));//直接取原数组的值,并将原数组进行改变,原数组为取走以后剩下的值
  3. echo "
    ";  
  4. print_r($arr2);
  5. echo "";
  6. echo "
    ";  
  7. print_r($arr);
  8. echo "";
  9. ?>
复制代码

array_merge();

  1. $a = array("aa","bb","cc");
  2. $b = array("dd","ee","ff","gg");
  3. $arr = array_merge($a, $b);
  4. echo "
    ";  
  5. print_r($arr);
  6. echo "";
  7. ?>
复制代码

其他有用的数组处理函数: 1.array_rand();//随机取一个key 2.range();//取出某个范围的数组 3.shuffle();//打乱数组的作用 4.array_sum();//计算数组内所有人的和(计算总得分) 如果计算数组的key之和,可以采用array_flip()对数组的健和值进行对调,然后就可以算出健之和.

  1. $arr = array("aa","bb","cc","dd","ee","ff","gg");

  2. //将原数组顺序随机打乱
  3. shuffle($arr);
  4. //取出数组的前3个
  5. $arr2= array_slice($arr, 0 , 3);
  6. echo "
    ";  
  7. print_r($arr2);
  8. echo "";
  9. ?>
  10. //随机输出四位字符 验证码实现:
  11. //取出1-9 a-z A-Z的数组

  12. $a = range(1, 9);
  13. $b = range(a, z);
  14. $c = range(A, Z);
  15. //将3个数组合并
  16. $d = array_merge($a,$b,$c);
  17. //将合并后的数组打乱
  18. shuffle($d);
  19. //取合并后的前4位
  20. $e = array_slice($d, 0, 4);
  21. //将$e数组变为字符串
  22. $f = join("", $e);
  23. echo $f;
  24. ?>
复制代码