首页  >  文章  >  后端开发  >  php数组函数实例教程详解

php数组函数实例教程详解

WBOY
WBOY原创
2016-07-25 08:51:441001浏览
  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. ?>
复制代码


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn