【风马一族_php】数组函数

原文来自:http://www.cnblogs.com/sows/p/6045699.html (博客园的)风马一族 侵犯版本,后果自负  2016-11-09 15:56:26


数组 函数

  php--数组的尝鲜事例

     语法:array_change_key_case(数组名);   

  •     php-->修改数组的键名(下标)的字母大小写

  array_chunk — 将一个数组分割成多个

     语法:array_chunk(数组名,设置数组的长度);   

     php--将数组划分成若干个数组


      待定

  • array_combine — 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
    • php--数组的元素充当另个数组的键名
  • array_count_values — 统计数组中所有的值出现的次数
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr = array(23,324,32,45,645,6,56,23,5,5,56,54,65,7,5,45,63,45,34
       9     );
      10     
      11     //统计数组中各个元素的出现数量
      12     var_dump(array_count_values($arr));
      13 ?>
      14 
      15 结果:
      16 array(13) {
      17   [23]=>
      18   int(2)
      19   [324]=>
      20   int(1)
      21   [32]=>
      22   int(1)
      23   [45]=>
      24   int(3)
      25   [645]=>
      26   int(1)
      27   [6]=>
      28   int(1)
      29   [56]=>
      30   int(2)
      31   [5]=>
      32   int(3)
      33   [54]=>
      34   int(1)
      35   [65]=>
      36   int(1)
      37   [7]=>
      38   int(1)
      39   [63]=>
      40   int(1)
      41   [34]=>
      42   int(1)
      43 }
      php--统计各个元素在数组中出现的次数
  • array_diff_assoc — 带索引检查计算数组的差集
    • php--两个数组相减
  • array_diff_key — 使用键名比较计算数组的差集
    • php--通过数组的下标进行减法运算,计算出不同下标或不同值
  • array_diff_uassoc — 用用户提供的回调函数做索引检查来计算数组的差集
    • php--使用回调函数来处理两个数组的减法
  • array_diff_ukey — 用回调函数对键名比较计算数组的差集
    • php--使用回调函数,两个函数间不同的下标
  • array_diff — 计算数组的差集
    • php--两个数组是减法运算
  • array_fill_keys — 使用指定的键和值填充数组
    • php--关系一对多,数组的每个元素,对应另个数组的所有元素
  • array_fill — 用给定的值填充数组
    • 语法  array_fill(索引的位置起始,数量,元素的值)  
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr1 = array(111,222,333);
       9     $arr2 = array(111,222,333);
      10 
      11     var_dump(array_fill(0,2,'a'));
      12 ?>
      13 
      14 结果:
      15 array(2) {
      16   [0]=>
      17   string(1) "a"
      18   [1]=>
      19   string(1) "a"
      20 }
      php--给数组提供若干个相同的元素

  • array_filter — 用回调函数过滤数组中的单元
    • 语法:array_filter(数组名, 回调函数)  
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr = array(
       9         254235,34,534,654,75,8,9,677,423,5,7,6435,43543,4,5,7,65,765,3
      10     );
      11 
      12     var_dump(array_filter($arr,'odd'));
      13 
      14     function odd($var){
      15         return($var & 0);
      16     }
      17 ?>
      18 
      19 结果:
      20 //return($var & 0);
      21 array(0) {       
      22 
      23 }
      24 
      25 
      26 //return($var & 1);
      27 array(14) {
      28   [0]=>
      29   int(254235)
      30   [4]=>
      31   int(75)
      32   [6]=>
      33   int(9)
      34   [7]=>
      35   int(677)
      36   [8]=>
      37   int(423)
      38   [9]=>
      39   int(5)
      40   [10]=>
      41   int(7)
      42   [11]=>
      43   int(6435)
      44   [12]=>
      45   int(43543)
      46   [14]=>
      47   int(5)
      48   [15]=>
      49   int(7)
      50   [16]=>
      51   int(65)
      52   [17]=>
      53   int(765)
      54   [18]=>
      55   int(3)
      56 }
      57 
      58 //return($var & 2);
      59 array(11) {
      60   [0]=>
      61   int(254235)
      62   [1]=>
      63   int(34)
      64   [2]=>
      65   int(534)
      66   [3]=>
      67   int(654)
      68   [4]=>
      69   int(75)
      70   [8]=>
      71   int(423)
      72   [10]=>
      73   int(7)
      74   [11]=>
      75   int(6435)
      76   [12]=>
      77   int(43543)
      78   [15]=>
      79   int(7)
      80   [18]=>
      81   int(3)
      82 }    
      php--过滤数组中的某些元素

  • array_flip — 交换数组中的键和值
    • 语法:array_flip(数组名);  
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr = array(
       9         'name'=>'sows',
      10         'sex'=>'mm',
      11         'age'=>'23'
      12     );
      13 
      14     var_dump(array_flip($arr));
      15 ?>
      16 
      17 结果:
      18 array(3) {
      19   ["sows"]=>
      20   string(4) "name"
      21   ["mm"]=>
      22   string(3) "sex"
      23   [23]=>
      24   string(3) "age"
      25 }
      php--数组中的键名与元素进行位置调换

  • array_intersect_assoc — 带索引检查计算数组的交集
    • 语法:array_intersect_assoc(数组1,数组2,数组3.......);  
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr1 = array(
       9         'name'=>'sows','age'=>'23','sex'=>'mm'
      10     );
      11 
      12     $arr2 = array(
      13         'age'=>'23','sex'=>'mm','name'=>'sows'
      14     );
      15 
      16     var_dump(array_intersect_assoc($arr1,$arr2));
      17 
      18 ?>
      19 
      20 结果:
      21 array(3) {
      22   ["name"]=>
      23   string(4) "sows"
      24   ["age"]=>
      25   string(2) "23"
      26   ["sex"]=>
      27   string(2) "mm"
      28 }
      29 
      30 =============================
      31 <?php
      32     //设置文件的编码为 utf-8,以便识别中文
      33     header('Content-type:text/html;charset=utf-8');  
      34 
      35     //让结果,按原先的格式输出
      36     echo '<pre>';
      37 
      38     $arr1 = array(
      39         'name'=>'sows','age'=>'23','sex'=>'mm'
      40     );
      41 
      42     $arr2 = array(
      43         'a1ge'=>'23','sex'=>'m1m','name'=>'sows'
      44     );
      45 
      46     $arr3 = array(
      47         'age'=>'23','sex'=>'mm','name'=>'sows'
      48     );
      49 
      50 
      51     var_dump(array_intersect_assoc($arr1,$arr2,$arr3));
      52 
      53 ?>
      54 
      55 
      56 结果:
      57 array(1) {
      58   ["name"]=>
      59   string(4) "sows"
      60 }
      php--根据索引,对多个数组进行判断,寻找相同的索引的相同元素

  • array_intersect_key — 使用键名比较计算数组的交集
    • 语法:array_intersect_key(数组1,数组2,数组3.。。。。。。。。);
    • 说明:获取所有数组中,相同的键名,然后键名对应的元素,由第一个数组的元素来提供,元素排序由第一数组决定
    •  1 <?php
       2 
       3     //设置文件的编码为 utf-8,以便识别中文
       4     header('Content-type:text/html;charset=utf-8');  
       5 
       6     //让结果,按原先的格式输出
       7     echo '<pre>';
       8 
       9     $arr1 = array(
      10         'name'=>'苏俄',
      11         'age'=>'34',
      12         'sex'=>'mm'
      13     );
      14 
      15     $arr2 = array(
      16         'name'=>'苏俄',
      17         'age'=>'342',
      18         'sex'=>'mm'
      19     );
      20 
      21     $arr3 = array(
      22         'name'=>'苏俄','sex'=>'mm',
      23         'age'=>'342'
      24         
      25     );
      26     
      27     var_dump(array_intersect_key($arr1,$arr2));
      28     var_dump(array_intersect_key($arr2,$arr1));
      29     var_dump(array_intersect_key($arr3,$arr1,$arr2));
      30     var_dump(array_intersect_key($arr3,$arr2,$arr1));
      31 
      32 ?>
      33 
      34 结果:
      35 array(3) {
      36   ["name"]=>
      37   string(6) "苏俄"
      38   ["age"]=>
      39   string(2) "34"
      40   ["sex"]=>
      41   string(2) "mm"
      42 }
      43 array(3) {
      44   ["name"]=>
      45   string(6) "苏俄"
      46   ["age"]=>
      47   string(3) "342"
      48   ["sex"]=>
      49   string(2) "mm"
      50 }
      51 array(3) {
      52   ["name"]=>
      53   string(6) "苏俄"
      54   ["sex"]=>
      55   string(2) "mm"
      56   ["age"]=>
      57   string(3) "342"
      58 }
      59 array(3) {
      60   ["name"]=>
      61   string(6) "苏俄"
      62   ["sex"]=>
      63   string(2) "mm"
      64   ["age"]=>
      65   string(3) "342"
      66 }
      php-求数组间的交集

  • array_intersect_uassoc — 带索引检查计算数组的交集,用回调函数比较索引
    • 语法:array_intersect_uassoc(数组一,数组二。。。。。,回调函数)  
    • 说明:求多个数组间的交集,并使用回调函数(自定义)
    •  1 <?php
       2     
       3     //设置文件的编码为 utf-8,以便识别中文
       4     header('Content-type:text/html;charset=utf-8');  
       5 
       6     //让结果,按原先的格式输出
       7     echo '<pre>';
       8 
       9     $arr1 = array(
      10         'name'=>'sows',
      11         'age'=>'25',
      12         'sex'=>'mm'
      13     );
      14 
      15     $arr2 = array(
      16         'name'=>'sows',
      17         'age'=>'25',
      18         'sex'=>'mm'
      19     );
      20 
      21     $arr3 = array(
      22             'name'=>'sows',
      23             'age'=>'215',
      24             'sex'=>'mm'
      25         );
      26 
      27 
      28 
      29     var_dump(array_intersect_uassoc($arr1,$arr2,'fun'));
      30     
      31     var_dump(array_intersect_uassoc($arr1,$arr2,$arr3,'fun'));
      32 
      33     function fun($a,$b){
      34         if($a > $b){
      35             return 1;    
      36         }elseif($a <$b){
      37             return     -1;
      38         }else{
      39             return 0;
      40         }
      41     }
      42 
      43 
      44 ?>
      45 
      46 结果:
      47 //array_intersect_uassoc($arr1,$arr2,'fun')
      48 array(3) {
      49   ["name"]=>
      50   string(4) "sows"
      51   ["age"]=>
      52   string(2) "25"
      53   ["sex"]=>
      54   string(2) "mm"
      55 }
      56 
      57 //array_intersect_uassoc($arr1,$arr2,$arr3,'fun')
      58 array(2) {
      59   ["name"]=>
      60   string(4) "sows"
      61   ["sex"]=>
      62   string(2) "mm"
      63 }
      php--使用回调函数,获取数组间的交集

  • array_intersect_ukey — 用回调函数比较键名来计算数组的交集
    • 语法:array_intersect_ukey(数组1,数组2,数组3.。。。。,回调函数) 
    • 说明:使用回调函数,获取所有数组中,相同的键名,然后键名对应的元素,由第一个数组的元素来提供,元素排序由第一数组决定
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr1 = array(
       9         'name'=>'楼主',
      10         'age'=>'15',
      11         'sex'=>'GG'
      12     );
      13 
      14     $arr2 = array(
      15         'name'=>'楼主',
      16         'sex'=>'GGM',
      17         'age'=>'15'
      18         
      19     );
      20 
      21     var_dump(array_intersect_ukey($arr2,$arr1,'fun'));
      22 
      23     function fun($a,$b){
      24         if($a > $b){
      25             return 1;    
      26         }elseif($a <$b){
      27             return     -1;
      28         }else{
      29             return 0;
      30         }
      31     }
      32 ?>
      33 
      34 结果:array(3) {
      35   ["name"]=>
      36   string(6) "楼主"
      37   ["sex"]=>
      38   string(3) "GGM"
      39   ["age"]=>
      40   string(2) "15"
      41 }
      php--使用回调函数,根据数组间的键名比较,获取相同键名的元素,元素的值由第一个数组决定

  • array_intersect — 计算数组的交集
    • 语法:array_intersect(数组1,数组2,数组3.。。。。);
    • 说明:从多个数组中,获取相同的元素
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr1 = array(1,2,3,4,5,6);
       9     $arr2 = array(1,2,31,4,51,6);
      10     
      11     var_dump(array_intersect($arr1,$arr1));
      12     var_dump(array_intersect($arr1,$arr2));
      13     var_dump(array_intersect($arr2,$arr1));
      14 
      15 ?>
      16 
      17 结果:
      18 array(6) {
      19   [0]=>
      20   int(1)
      21   [1]=>
      22   int(2)
      23   [2]=>
      24   int(3)
      25   [3]=>
      26   int(4)
      27   [4]=>
      28   int(5)
      29   [5]=>
      30   int(6)
      31 }
      32 array(4) {
      33   [0]=>
      34   int(1)
      35   [1]=>
      36   int(2)
      37   [3]=>
      38   int(4)
      39   [5]=>
      40   int(6)
      41 }
      42 array(4) {
      43   [0]=>
      44   int(1)
      45   [1]=>
      46   int(2)
      47   [3]=>
      48   int(4)
      49   [5]=>
      50   int(6)
      51 }
      php--获取多个数组间的相同元素

  • array_key_exists — 检查给定的键名或索引是否存在于数组中
    • 语法:array_key_exists(键名,数组名);
    • 说明:在数组中搜索键名, 若存在返回true;若不存在返回false
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr1 = array(
       9         'name'=>'sows',
      10         'age'=>15,
      11         'sex'=>'mm'
      12     );
      13 
      14     var_dump(array_key_exists('name',$arr1));
      15     var_dump(array_key_exists('sex1',$arr1));
      16 
      17 ?>
      18 
      19 结果:
      20 bool(true)
      21 bool(false)
      php--在数组中搜索键名

  • array_keys — 返回数组中部分的或所有的键名
    • 语法:array_keys(数组)     array_keys(数组,元素);
    • 说明:获取数组的键名
    • php--输出数组的所有键名或部分键名
    •   

  • array_map — 将回调函数作用到给定数组的单元上
    • 语法:array_map(回调函数,数组);  
    • 说明:使用回调函数,对数组中的每个元素进行处理
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr = array(
       9         'name'=>'楼主',
      10         'age'=>'15',
      11         'sex'=>'GG'
      12     );
      13 
      14     var_dump(array_map('fun',$arr));
      15 
      16     function fun($a){
      17         return $a.=' 你好';
      18     }
      19 ?>
      20 
      21 结果:
      22 array(3) {
      23   ["name"]=>
      24   string(13) "楼主 你好"
      25   ["age"]=>
      26   string(9) "15 你好"
      27   ["sex"]=>
      28   string(9) "GG 你好"
      29 }
      php--回调函数对数组的所有元素进行处理

  • array_merge_recursive — 递归地合并一个或多个数组   ( array_merge 的效果,有问题
    • 语法:array_merge_recursive(数组一,数组二,数组三。。。。。。。);
    • 说明:多个数组间的头尾相连,形成大的数组
    •   1 <?php
        2     //设置文件的编码为 utf-8,以便识别中文
        3     header('Content-type:text/html;charset=utf-8');  
        4 
        5     //让结果,按原先的格式输出
        6     echo '<pre>';
        7     
        8     $arr1 = array(1,2,3,4,5,6,7,8,9,0);
        9     $arr2 = array('a','b','c','d','e','f','g','h','j','n');
       10     $arr3 = array('A','B','C','D','E','F','G','H','J','N');
       11 
       12     var_dump(array_merge_recursive($arr1,$arr2));
       13     
       14     var_dump(array_merge_recursive($arr2,$arr1));
       15     
       16     var_dump(array_merge_recursive($arr1,$arr2,$arr3));
       17     
       18 ?>
       19 
       20 结果:
       21 //array_merge_recursive($arr1,$arr2)
       22 array(20) {
       23   [0]=>
       24   int(1)
       25   [1]=>
       26   int(2)
       27   [2]=>
       28   int(3)
       29   [3]=>
       30   int(4)
       31   [4]=>
       32   int(5)
       33   [5]=>
       34   int(6)
       35   [6]=>
       36   int(7)
       37   [7]=>
       38   int(8)
       39   [8]=>
       40   int(9)
       41   [9]=>
       42   int(0)
       43   [10]=>
       44   string(1) "a"
       45   [11]=>
       46   string(1) "b"
       47   [12]=>
       48   string(1) "c"
       49   [13]=>
       50   string(1) "d"
       51   [14]=>
       52   string(1) "e"
       53   [15]=>
       54   string(1) "f"
       55   [16]=>
       56   string(1) "g"
       57   [17]=>
       58   string(1) "h"
       59   [18]=>
       60   string(1) "j"
       61   [19]=>
       62   string(1) "n"
       63 }
       64 
       65 //array_merge_recursive($arr2,$arr1)
       66 array(20) {
       67   [0]=>
       68   string(1) "a"
       69   [1]=>
       70   string(1) "b"
       71   [2]=>
       72   string(1) "c"
       73   [3]=>
       74   string(1) "d"
       75   [4]=>
       76   string(1) "e"
       77   [5]=>
       78   string(1) "f"
       79   [6]=>
       80   string(1) "g"
       81   [7]=>
       82   string(1) "h"
       83   [8]=>
       84   string(1) "j"
       85   [9]=>
       86   string(1) "n"
       87   [10]=>
       88   int(1)
       89   [11]=>
       90   int(2)
       91   [12]=>
       92   int(3)
       93   [13]=>
       94   int(4)
       95   [14]=>
       96   int(5)
       97   [15]=>
       98   int(6)
       99   [16]=>
      100   int(7)
      101   [17]=>
      102   int(8)
      103   [18]=>
      104   int(9)
      105   [19]=>
      106   int(0)
      107 }
      108 
      109 //array_merge_recursive($arr1,$arr2,$arr3))
      110 array(30) {
      111   [0]=>
      112   int(1)
      113   [1]=>
      114   int(2)
      115   [2]=>
      116   int(3)
      117   [3]=>
      118   int(4)
      119   [4]=>
      120   int(5)
      121   [5]=>
      122   int(6)
      123   [6]=>
      124   int(7)
      125   [7]=>
      126   int(8)
      127   [8]=>
      128   int(9)
      129   [9]=>
      130   int(0)
      131   [10]=>
      132   string(1) "a"
      133   [11]=>
      134   string(1) "b"
      135   [12]=>
      136   string(1) "c"
      137   [13]=>
      138   string(1) "d"
      139   [14]=>
      140   string(1) "e"
      141   [15]=>
      142   string(1) "f"
      143   [16]=>
      144   string(1) "g"
      145   [17]=>
      146   string(1) "h"
      147   [18]=>
      148   string(1) "j"
      149   [19]=>
      150   string(1) "n"
      151   [20]=>
      152   string(1) "A"
      153   [21]=>
      154   string(1) "B"
      155   [22]=>
      156   string(1) "C"
      157   [23]=>
      158   string(1) "D"
      159   [24]=>
      160   string(1) "E"
      161   [25]=>
      162   string(1) "F"
      163   [26]=>
      164   string(1) "G"
      165   [27]=>
      166   string(1) "H"
      167   [28]=>
      168   string(1) "J"
      169   [29]=>
      170   string(1) "N"
      171 }
      php--多个数组间相连成大的数组

  • array_merge — 合并一个或多个数组
    • 语法:array_merge(数组1,数组2,数组3.。。。。。。。);
    • 说明:
    •   1 <?php
        2     //设置文件的编码为 utf-8,以便识别中文
        3     header('Content-type:text/html;charset=utf-8');  
        4 
        5     //让结果,按原先的格式输出
        6     echo '<pre>';
        7     
        8     $arr1 = array(1,2,3,4,5,6,7,8,9,0);
        9     $arr2 = array('a','b','c','d','e','f','g','h','j','n');
       10     $arr3 = array('A','B','C','D','E','F','G','H','J','N');
       11 
       12     var_dump(array_merge($arr1,$arr2));
       13     var_dump(array_merge($arr2,$arr1));
       14     var_dump(array_merge($arr1,$arr2,$arr3));
       15 
       16 
       17     $arr4 = array('name1'=>1,'name2'=>2,'name3'=>3,'name4'=>4);
       18     $arr5 = array('name1'=>1,'name2'=>2,'name3'=>3,'name4'=>4);
       19     
       20     var_dump(array_merge_recursive($arr4,$arr5));
       21 ?>
       22 
       23 结果:
       24 array(20) {
       25   [0]=>
       26   int(1)
       27   [1]=>
       28   int(2)
       29   [2]=>
       30   int(3)
       31   [3]=>
       32   int(4)
       33   [4]=>
       34   int(5)
       35   [5]=>
       36   int(6)
       37   [6]=>
       38   int(7)
       39   [7]=>
       40   int(8)
       41   [8]=>
       42   int(9)
       43   [9]=>
       44   int(0)
       45   [10]=>
       46   string(1) "a"
       47   [11]=>
       48   string(1) "b"
       49   [12]=>
       50   string(1) "c"
       51   [13]=>
       52   string(1) "d"
       53   [14]=>
       54   string(1) "e"
       55   [15]=>
       56   string(1) "f"
       57   [16]=>
       58   string(1) "g"
       59   [17]=>
       60   string(1) "h"
       61   [18]=>
       62   string(1) "j"
       63   [19]=>
       64   string(1) "n"
       65 }
       66 array(20) {
       67   [0]=>
       68   string(1) "a"
       69   [1]=>
       70   string(1) "b"
       71   [2]=>
       72   string(1) "c"
       73   [3]=>
       74   string(1) "d"
       75   [4]=>
       76   string(1) "e"
       77   [5]=>
       78   string(1) "f"
       79   [6]=>
       80   string(1) "g"
       81   [7]=>
       82   string(1) "h"
       83   [8]=>
       84   string(1) "j"
       85   [9]=>
       86   string(1) "n"
       87   [10]=>
       88   int(1)
       89   [11]=>
       90   int(2)
       91   [12]=>
       92   int(3)
       93   [13]=>
       94   int(4)
       95   [14]=>
       96   int(5)
       97   [15]=>
       98   int(6)
       99   [16]=>
      100   int(7)
      101   [17]=>
      102   int(8)
      103   [18]=>
      104   int(9)
      105   [19]=>
      106   int(0)
      107 }
      108 array(30) {
      109   [0]=>
      110   int(1)
      111   [1]=>
      112   int(2)
      113   [2]=>
      114   int(3)
      115   [3]=>
      116   int(4)
      117   [4]=>
      118   int(5)
      119   [5]=>
      120   int(6)
      121   [6]=>
      122   int(7)
      123   [7]=>
      124   int(8)
      125   [8]=>
      126   int(9)
      127   [9]=>
      128   int(0)
      129   [10]=>
      130   string(1) "a"
      131   [11]=>
      132   string(1) "b"
      133   [12]=>
      134   string(1) "c"
      135   [13]=>
      136   string(1) "d"
      137   [14]=>
      138   string(1) "e"
      139   [15]=>
      140   string(1) "f"
      141   [16]=>
      142   string(1) "g"
      143   [17]=>
      144   string(1) "h"
      145   [18]=>
      146   string(1) "j"
      147   [19]=>
      148   string(1) "n"
      149   [20]=>
      150   string(1) "A"
      151   [21]=>
      152   string(1) "B"
      153   [22]=>
      154   string(1) "C"
      155   [23]=>
      156   string(1) "D"
      157   [24]=>
      158   string(1) "E"
      159   [25]=>
      160   string(1) "F"
      161   [26]=>
      162   string(1) "G"
      163   [27]=>
      164   string(1) "H"
      165   [28]=>
      166   string(1) "J"
      167   [29]=>
      168   string(1) "N"
      169 }
      170 array(4) {
      171   ["name1"]=>
      172   array(2) {
      173     [0]=>
      174     int(1)
      175     [1]=>
      176     int(1)
      177   }
      178   ["name2"]=>
      179   array(2) {
      180     [0]=>
      181     int(2)
      182     [1]=>
      183     int(2)
      184   }
      185   ["name3"]=>
      186   array(2) {
      187     [0]=>
      188     int(3)
      189     [1]=>
      190     int(3)
      191   }
      192   ["name4"]=>
      193   array(2) {
      194     [0]=>
      195     int(4)
      196     [1]=>
      197     int(4)
      198   }
      199 }
      php--多个数组间的头尾相连

         


  • array_multisort — 对多个数组或多维数组进行排序
    • 语法:array_multisort(数组1,数组2,数组3.。。。。。,排序顺序|排序类型)  
      • 排序顺序标志:
        • SORT_ASC - 按照上升顺序排序(默认值,即不填时,默认使用它)
        • SORT_DESC - 按照下降顺序排序
      • 排序类型标志:
        • SORT_REGULAR - 将项目按照通常方法比较(默认值,即不填时,默认使用它)
        • SORT_NUMERIC - 将项目按照数值比较
        • SORT_STRING - 将项目按照字符串比较
    • 说明:
      • 两种排序方式:用键名进行排序 | 用元素进行排序
      • 数组排序前后的顺序会发生改变
      • 可以同时对多个数组进行排序,排序只针对一个数组内部的元素,即数组间不会相互影响,
    •   1 <?php
        2     //设置文件的编码为 utf-8,以便识别中文
        3     header('Content-type:text/html;charset=utf-8');  
        4 
        5     //让结果,按原先的格式输出
        6     echo '<pre>';
        7 
        8     $arr1 = array(
        9         324,32,5345,6,788,6,78,79,98786,78897
       10     );
       11 
       12     array_multisort($arr1,SORT_STRING);
       13         var_dump($arr1);
       14     array_multisort($arr1,SORT_NUMERIC );
       15     var_dump($arr1);
       16 
       17     $arr2 = array(
       18         'a'=>3324,'d'=>3432,'f'=>435436,'c'=>8723,'g'=>645
       19     );
       20     array_multisort($arr2,SORT_NUMERIC ); //默认式,按元素,从小到大排序
       21     var_dump($arr2);
       22     array_multisort($arr2,SORT_STRING);   //按键名,从小到大排序(默认:SORT_ASC)
       23     var_dump($arr2);
       24     array_multisort($arr2,SORT_NUMERIC ); //按元素,从小到大排序(默认:SORT_ASC)
       25     var_dump($arr2);
       26 
       27     //修改显示的顺序
       28     array_multisort($arr2,SORT_NUMERIC,SORT_ASC); //按元素,从小到大排序
       29     var_dump($arr2);
       30     array_multisort($arr2,SORT_NUMERIC,SORT_DESC); //按元素,从大到小排序
       31     var_dump($arr2);
       32 
       33 ?>
       34 
       35 结果:
       36 array(10) {
       37   [0]=>
       38   int(32)
       39   [1]=>
       40   int(324)
       41   [2]=>
       42   int(5345)
       43   [3]=>
       44   int(6)
       45   [4]=>
       46   int(6)
       47   [5]=>
       48   int(78)
       49   [6]=>
       50   int(788)
       51   [7]=>
       52   int(78897)
       53   [8]=>
       54   int(79)
       55   [9]=>
       56   int(98786)
       57 }
       58 array(10) {
       59   [0]=>
       60   int(6)
       61   [1]=>
       62   int(6)
       63   [2]=>
       64   int(32)
       65   [3]=>
       66   int(78)
       67   [4]=>
       68   int(79)
       69   [5]=>
       70   int(324)
       71   [6]=>
       72   int(788)
       73   [7]=>
       74   int(5345)
       75   [8]=>
       76   int(78897)
       77   [9]=>
       78   int(98786)
       79 }
       80 array(5) {
       81   ["g"]=>
       82   int(645)
       83   ["a"]=>
       84   int(3324)
       85   ["d"]=>
       86   int(3432)
       87   ["c"]=>
       88   int(8723)
       89   ["f"]=>
       90   int(435436)
       91 }
       92 array(5) {
       93   ["a"]=>
       94   int(3324)
       95   ["d"]=>
       96   int(3432)
       97   ["f"]=>
       98   int(435436)
       99   ["g"]=>
      100   int(645)
      101   ["c"]=>
      102   int(8723)
      103 }
      104 array(5) {
      105   ["g"]=>
      106   int(645)
      107   ["a"]=>
      108   int(3324)
      109   ["d"]=>
      110   int(3432)
      111   ["c"]=>
      112   int(8723)
      113   ["f"]=>
      114   int(435436)
      115 }
      116 array(5) {
      117   ["g"]=>
      118   int(645)
      119   ["a"]=>
      120   int(3324)
      121   ["d"]=>
      122   int(3432)
      123   ["c"]=>
      124   int(8723)
      125   ["f"]=>
      126   int(435436)
      127 }
      128 array(5) {
      129   ["f"]=>
      130   int(435436)
      131   ["c"]=>
      132   int(8723)
      133   ["d"]=>
      134   int(3432)
      135   ["a"]=>
      136   int(3324)
      137   ["g"]=>
      138   int(645)
      139 }
      php--对数组按某种方式进行排序

  • array_pad — 用值将数组填补到指定长度
    • 语法:array_pad(数组名,设置数组长度,要增添的元素)      
      • 1.设置数组长度不超过数组的原先长度,都才有意义
      • 2.如果对数组会有删除操作,空余的位置,由增添元素处理,或许有意义
    • 说明:给数组增加若干个相同的元素
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr = array(
       9         1,2,5
      10     );
      11     
      12     //设置数组的长度为10,当原先数组的长度不够10时,剩余的位置由2填充
      13     print_r(array_pad($arr,10,2));
      14 
      15     //设置数组的长度为2,当原先数组的长度超过设置的数组长度,则保持不变
      16     print_r(array_pad($arr,2,2));
      17 
      18     //设置数组的长度为10,当原先数组的长度不够5时,剩余的位置由3填充
      19     print_r(array_pad($arr,5,3));
      20 
      21 
      22 ?>
      23 
      24 结果:
      25 Array
      26 (
      27     [0] => 1
      28     [1] => 2
      29     [2] => 5
      30     [3] => 2
      31     [4] => 2
      32     [5] => 2
      33     [6] => 2
      34     [7] => 2
      35     [8] => 2
      36     [9] => 2
      37 )
      38 Array
      39 (
      40     [0] => 1
      41     [1] => 2
      42     [2] => 5
      43 )
      44 Array
      45 (
      46     [0] => 1
      47     [1] => 2
      48     [2] => 5
      49     [3] => 3
      50     [4] => 3
      51 )
      ohp--给数组增添若干个相同的元素

  • array_pop — 将数组最后一个单元弹出(出栈)
    • 语法:array_pop(数组);
    • 说明:栈结构:先进后出,用数组作栈结构,元素的进出都在数组尾巴进行
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr = array(1,2,3,4,5,6,7,8,9,10);
       9 
      10     var_dump(array_pop($arr));
      11     var_dump(array_pop($arr));
      12     print_r(array_pop($arr));
      13 
      14 ?>
      15 
      16 结果:
      17 10
      18 9
      19 8
      php--移出数组的最后一个元素

         


  • array_product — 计算数组中所有值的乘积
    • 语法:array_product(数组);
    • 说明:对纯数字的数组进行相乘,用字符串表示的数字也可以接受
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     //对数组的数字进行相乘
       9     $arr = array(1,2,3,4,5,6,7,8,9); 
      10     var_dump(array_product($arr));
      11     
      12     //用字符串表示的数字,同样可以参与运算
      13     $arr = array(1,2,3,4,5,6,7,8,9,'323');
      14     var_dump(array_product($arr));
      15 
      16     //对非数字的字符,不起作用
      17     $arr = array(1,2,3,4,5,6,7,8,9,'a3');
      18     var_dump(array_product($arr));
      19 ?>
      20 
      21 结果:
      22 int(362880)
      23 int(117210240)
      24 int(0)
      php--对纯数字的数组进行相乘
        

  • array_push — 将一个或多个单元压入数组的末尾(入栈)
    • 语法:array_push(数组,要添加的元素);
    • 说明:栈结构:先进后出,用数组作栈结构,元素的进出都在数组尾巴进行
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     
       9     $arr = array(1,2,3,4,5,6,7,8,9,10);
      10 
      11     var_dump(array_push($arr,11));
      12     var_dump(array_push($arr,12));
      13     var_dump(array_push($arr,13));
      14     
      15     print_r($arr);
      16 ?>
      17 
      18 结果:
      19 int(11)
      20 int(12)
      21 int(13)
      22 Array
      23 (
      24     [0] => 1
      25     [1] => 2
      26     [2] => 3
      27     [3] => 4
      28     [4] => 5
      29     [5] => 6
      30     [6] => 7
      31     [7] => 8
      32     [8] => 9
      33     [9] => 10
      34     [10] => 11
      35     [11] => 12
      36     [12] => 13
      37 )
      php--向数组的尾巴添加元素
        

  • array_rand — 从数组中随机取出一个或多个单元
    • 语法:array_rand(数组,产生数字的长度);    //长度不能超过数组的长度  
    • 说明:用数组产生随机数
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr = array(1,2,3,4,5,6,7,8,9,0);
       9     
      10     //随机获取一个元素
      11     var_dump(array_rand($arr));
      12 
      13     //随机获取二个元素
      14     var_dump(array_rand($arr,2));
      15 
      16     //随机获取三个元素
      17     var_dump(array_rand($arr,3));
      18 
      19 ?>
      20 
      21 结果:
      22 //随机产生一个数字
      23 int(5)
      24 
      25 //随机产生二个数字
      26 array(2) {
      27   [0]=>
      28   int(2)
      29   [1]=>
      30   int(7)
      31 }
      32 
      33 //随机产生三个数字
      34 array(3) {
      35   [0]=>
      36   int(0)
      37   [1]=>
      38   int(7)
      39   [2]=>
      40   int(9)
      41 }
      php--从数组中随机产生数字

  • array_reduce — 用回调函数迭代地将数组简化为单一的值
    • 语法:array_reduce(数组名,回调函数的名);   //回调函数的写法,自己订
    • 说明:把数组的元素,转化成一个值
    •  1 <?php
       2     //设置文件的编码为 utf-8,以便识别中文
       3     header('Content-type:text/html;charset=utf-8');  
       4 
       5     //让结果,按原先的格式输出
       6     echo '<pre>';
       7 
       8     $arr = array(234,32,4,25,34,543,643,6,43543);
       9 
      10     //=================================================
      11     //让数组通过回调函数,进行处理
      12     var_dump(array_reduce($arr,'fun'));
      13 
      14     //使用回调函数,对元素进行相加
      15     function fun($a, $b){
      16     
      17         $a += $b;
      18         return $a;
      19     }
      20     //===============================================
      21     //使用回调函数,对元素进行相加,并添加数字
      22     var_dump(array_reduce($arr,'fun1',100));
      23 
      24     //使用回调函数,对元素进行相加
      25         function fun1($a, $b){
      26         
      27             $a += $b;
      28             return $a;
      29     }
      30 ?>
      31 
      32 结果:
      33 int(45064)
      34 int(45164)
      php--数组通过回调函数进行处理,化成一个数字

         


  • array_replace_recursive — 使用传递的数组递归替换第一个数组的元素
    • 语法:
    • 说明:
    •   
  • array_replace — 使用传递的数组替换第一个数组的元素
  • array_reverse — 返回一个单元顺序相反的数组
  • array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
  • array_shift — 将数组开头的单元移出数组
  • array_slice — 从数组中取出一段
  • array_splice — 把数组中的一部分去掉并用其它值取代
  • array_sum — 计算数组中所有值的和
  • array_udiff_assoc — 带索引检查计算数组的差集,用回调函数比较数据
  • array_udiff_uassoc — 带索引检查计算数组的差集,用回调函数比较数据和索引
  • array_udiff — 用回调函数比较数据来计算数组的差集
  • array_uintersect_assoc — 带索引检查计算数组的交集,用回调函数比较数据
  • array_uintersect_uassoc — 带索引检查计算数组的交集,用回调函数比较数据和索引
  • array_uintersect — 计算数组的交集,用回调函数比较数据
  • array_unique — 移除数组中重复的值
  • array_unshift — 在数组开头插入一个或多个单元
  • array_values — 返回数组中所有的值
  • array_walk_recursive — 对数组中的每个成员递归地应用用户函数
  • array_walk — 使用用户自定义函数对数组中的每个元素做回调处理
  • array — 新建一个数组
  • arsort — 对数组进行逆向排序并保持索引关系
  • asort — 对数组进行排序并保持索引关系
  • compact — 建立一个数组,包括变量名和它们的值
  • count — 计算数组中的单元数目或对象中的属性个数
  • current — 返回数组中的当前单元
  • each — 返回数组中当前的键/值对并将数组指针向前移动一步
  • end — 将数组的内部指针指向最后一个单元
  • extract — 从数组中将变量导入到当前的符号表
  • in_array — 检查数组中是否存在某个值
  • key_exists — 别名 array_key_exists
  • key — 从关联数组中取得键名
  • krsort — 对数组按照键名逆向排序
  • ksort — 对数组按照键名排序
  • list — 把数组中的值赋给一些变量
  • natcasesort — 用“自然排序”算法对数组进行不区分大小写字母的排序
  • natsort — 用“自然排序”算法对数组排序
  • next — 将数组中的内部指针向前移动一位
  • pos — current 的别名
  • prev — 将数组的内部指针倒回一位
  • range — 建立一个包含指定范围单元的数组
  • reset — 将数组的内部指针指向第一个单元
  • rsort — 对数组逆向排序
  • shuffle — 将数组打乱
  • sizeof — count 的别名
  • sort — 对数组排序
  • uasort — 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
  • uksort — 使用用户自定义的比较函数对数组中的键名进行排序
  • usort — 使用用户自定义的比较函数对数组中的值进行排序

数学函数的说明

  1. array_change_key_case :返回字符串键名全为小写或大写的数组

    

     

原文地址:https://www.cnblogs.com/sows/p/6045699.html