PHP操作数组相关函数

来源:互联网 发布:java web权限设计 编辑:程序博客网 时间:2024/05/16 11:16
PHP操作数组相关函数:
range($low, $high),range($low, $high, $step);//创建顺序值的数组如:range(1,4)为(1,2,3,4)又如range('a','z')
each($array)按顺序返回数组的当前元素,并且将下一个元素设置为当前元素;
reset($array)将数组当前元素重新设置到数组开始处
list()可以用来将一个数组分解为一系列的值,如 list($a,$b)=each($array)
shuffle($array),array_rand($arg, $num_req);对数组随机排序
array_reverse($input),array_reverse($input, $preserve_keys)   返回原数组的反向排序
sort($array);对数组排序
创建数组:PHP中的数组声明跟其它语言的也有点小小的差别,但一样可以声明为一维,两维,三维及多维等。
如果要批量创建数组,则可以通过下面这个函数:array range ( mixed low, mixed high [, number step] ),如$array = range(1,6);代表array(1,2,3,4,5,6);
PHP 中输出数组的函数有比较多,常用的有:bool print_r(mixed expression [,bool return] ),void var_dump(mixed expression [, mixed expression [, ...]] )。还有像echo,print,printf都可以输出单个数组.
测试数组:有时我们需要判定一个变量是否为数组,则可以使用:bool is_array ( mixed var )。
增加或删除数组元素:int array_push( array &array, mixed var [, mixed ...] ) 将一个或多个单元压入数组的末尾,数组的长度根据入栈变量的数目增加。
mixed array_pop ( array &array ) 将数组的最后一个元素弹出(出栈),并在结束后重置数组的指针
mixed array_shift ( array &array )返回数组的第一个元素.
int array_unshift( array &array, mixed var [, mixed ...] ) 在数组的开头插入一个或多个单元
array array_pad( array input, int pad_size, mixed pad_value ) 用值将数组填补到指定的长度,如array_pad($array,3,$var)。
定位数组元素:
 bool in_array( mixed needle, array haystack [, bool strict] ) 检查数组中是否存在某个值
 array array_keys( array input [, mixed search_value [, bool strict]] ) 返回数组中的所有键名,重组成一个新数组
 bool array_key_exists( mixed key, array search ) 检查给定的key是否存在于数组中.
 array array_values ( array input ) 返回数组中所有的值
 mixed array_search ( mixed needle, array haystack [, bool strict] ) 在数组中搜索给定的值,成功则返回key.
遍历数组:
 mixed key ( array &array ) 从关联数组中取得键名
 mixed reset ( array &array ) 将数组指针重置
 array each ( array &array ) 返回数组中的键/值对并将数组向前移一步
 mixed current ( array &array ) 返回数组中的当前单元
 mixed end ( array &array ) 将数组中的指针移向最后一位
 mixed next ( array &array ) 将数组中的指针移向下一位
 mixed prev ( array &array ) 将数组中的指针移向上一位
 array array_reverse ( array array [, bool preserve_keys] ) 返回一个单元顺序相反的数组
 array array_flip ( array trans ) 将数组中的键值角色调换,除了上面的函数外还可以使用循环来对数组中的元素进行遍历,如
 foreach (array_expr as $value)
 { statement    }
 foreach (array_expr as $key=>$value)
 { statement   }// 提取每个键/值对,直到获得所有项或满足某些内部条件为止
 void list ( mixed varname, mixed ... ) 把数组中的值赋给一些变量。
确定数组大小和唯一性:
 int count ( mixed var [, int mode] ) 计算数组中单元数组或对象中属性的个数, sizeof 的同名函数
 array array_count_values ( array input ) 统计数组中所有值出现的次数
 array array_unique ( array array ) 移除数组中重复的值。
数组排序:
 bool sort ( array &array [, int sort_flags] ) 对数组进行排序
 bool natsort ( array &array ) 用自然排序法对数组进行排序
 bool natcasesort ( array &array ) 用自然排序法对数组进行排序,不区分大小写
 bool rsort ( array &array [, int sort_flags] ) 对数组进行逆向排序
 bool asort ( array &array [, int sort_flags] ) 对数组进行排序并保持索引关系
 bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] ) 对多个数组或多维数组进行排序,可以按多个字段排序,eg:
  $data[] = array('volume' => 67, 'edition' => 2, 'date'=>2);
  $data[] = array('volume' => 67, 'edition' => 2, 'date'=>3);
  $data[] = array('volume' => 69, 'edition' => 7, 'date'=>9);
  foreach ($data as $key => $row) {
   $volume[$key]  = $row['volume'];
   $edition[$key] = $row['edition'];
   $date[$key]    = $row['date'];
  }
  array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $date, SORT_DESC, $data);
 它主用法:对多个数组排序、对多维数组排序、 对数据库结果进行排序(如上)、不区分大小写字母排序(要按照原数组的小写字母拷贝来排序)、名次排列(应用)。
 bool arsort ( array &array [, int sort_flags] ) 对数组进行逆序排序并保持索引关系
 bool ksort ( array &array [, int sort_flags] )对数组按键名排序
 bool krsort ( array &array [, int sort_flags] ) 对数组按键名逆序排序。
合并,拆分,接合和分解数组:
 array array_combine ( array keys, array values )创建一个数组,一个数组的值作为其键名,另一个数组的值作为其值
 array array_merge ( array array1 [, array array2 [, array ...]] )合并一个或多个数组
 array array_merge_recursive ( array array1 [, array ...] ) 递归地全部一个或多个数组
 array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )从数组中取出一段,建立一个新的数组,如果offset为正数,拆分从距数组开关的offset位置开始,如果为负数,则拆分从距数组末尾的offset 位置开始,此时距数组开关的count(input_array)-|length|位置结束
 array array_splice ( array &input, int offset [, int length [, array replacement]] ) 把数组中的部分值去掉,并用其它值替代.offset设置同上。
 array array_intersect (array1, array2 [, array ...] ) 计算数组的交集,即是说如果第一个数组中出现过的值在接下来的几个数组中都有出现,则取出该值。
 array array_intersect_assoc ( array array1, array array2 [, array ...] ) 带索引检查数组中的交集。
 array array_intersect_key ( array array1, array array2 [, array ...] ) 使用键名比较数组中的交集。
 array array_diff ( array array1, array array2 [, array ...] ) 计算数组的差集, 即是说跟第一个数组中不同的值。
 array array_diff_assoc ( array array1, array array2 [, array ...] ) 带索引检查数组中的差集。
 array array_diff_key ( array array1, array array2 [, array ...] ) 使用键名比较数组中的差集。
其它比较有用的数组函数:
 mixed array_rand ( array input [, int num_req] ) 数组中随机取出一个或多个键,num指定个数。
 bool shuffle( array &array ) 将数组打乱。
 number array_sum( array array ) 计算数组中所有值的总和,关联数组忽略。
 array array_chunk ( array input, int size [, bool preserve_keys] )将一个数组分割成几个。
0 0
原创粉丝点击