更多优质内容
请关注公众号

PHP基础(七) PHP数组之与数组相关的函数-张柏沛IT博客

正文内容

PHP基础(七) PHP数组之与数组相关的函数

栏目:PHP 系列:PHP基础系列 发布时间:2019-11-19 21:36 浏览量:2256

预定义数组

1  服务器变量: $_SERVER

2  环境变量:$_ENV

3  HTTP GET变量:$_GET

4  HHTP POST变量:$_POST

5  request变量:$_REQUEST

6  HTTP文件上传变量:$_FILES

7  HTTP Cookies:$_COOKIE

8  Session变量:$_SESSION

9  Global变量:$_GLOBALS

 

 服务器变量: $_SERVER

$_SERVER 是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。数组的实体由 web 服务器创建。不能保证所有的服务器都能产生所有的信息;服务器可能忽略了一些信息,或者产生了一些未在下面列出的新的信息。这是一个自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $_SERVER;
PHP_SELF :当前正在执行脚本的文件名
DOCUMENT_ROOT :当前运行脚本所在的文档根目录
REMOTE_ADDR :正在浏览当前页面用户的 IP 地址。

 

环境变量:$_ENV

在解析器运行时,这些变量从环境变量转变为 PHP 全局变量名称空间(namespace)。它们中的许多都是由 PHP 所运行的系统决定。完整的列表是不可能的。请查看系统的文档以确定其特定的环境变量。
这是一个自动全局变量。它在所有的脚本中都有效。在函数或方法中不需要使用 global $_ENV;

 

HTTP GET变量:$_GET

通过 HTTP GET 方法传递的变量组成的数组。是自动全局变量

http://localhost/login.php?name=zhangsan&id=100

 <?php
      echo “参数name的值:”.$_GET[“name”]; //zhangsan
    echo “参数id的值:”.$_GET[“id”]; //100
 ?>

 

HTTP POST变量:$_POST

通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。
与$_GET相似,只是方法不一样。

 

request变量:$_REQUEST

此关联数组包含 $_GET,$_POST 和 $_COOKIE 中的全部内容。

 

HTTP文件上传变量:$_FILES

通过 HTTP POST 方法传递的已上传文件项目组成的数组。是自动全局变量。

 

$_FILES详细说明请见:

内链

 

HTTP Cookies:$_COOKIE

通过 HTTP cookies 传递的变量组成的数组。是自动全局变量。

 

Session变量:$_SESSION

包含当前脚本中 session 变量的数组。参阅 Session 函数文档以获得更多信息。

 

cookie和session变量之后会详细说明,详情请见

内链

 

Global变量:$GLOBALS

由所有已定义全局变量组成的数组。变量名就是该数组的索引。

 

 

数组的相关处理函数

1.  array_values -- 返回数组中所有的值
格式:array array_values ( array input )

<?php

$a = array("name"=>"张三","age"=>20,"sex"=>"男");
$values = array_values($a);
var_dump($values); 
//array(3){[0]=>string(4)"张三"  [1]=>int(20)  [2]=>string(2)"男"}

?>

 

2.  array_keys -- 返回数组中所有的键名
格式:array array_keys(array input[,mixed search_value [,bool strict]])   其中search_value为则只返回该值的键名

$a = array("name"=>"张三","age"=>20,"sex"=>"男");
$keys = array_keys($a);
for($i=0;$i<count($keys);$i++){
	echo $keys[$i]."&nbsp;";  //name age sex 
} 

 

3.  in_array -- 检查数组中是否存在某个值
格式:bool in_array(mixed needle,array haystack [, bool strict] )      其中strict参数:是否匹配类型

$a = array("name"=>"张三","age"=>20,"sex"=>"男");
 if(in_array("张三",$a)){
           echo " ‘张三’在\$a数组中";   //”张三“在$a数组中
 }

 

4.  array_flip -- 交换数组中的键和值
格式:array array_flip ( array trans )

$a = array("name"=>"张三","age"=>20,"sex"=>"男");  
 $b = array_flip($a);
 foreach($b as $k=>$v){  
    echo "$k=>$v   ";  // 张三=>name 20=>age 男=>sex 
 }

 

5. array_reverse --  返回一个单元顺序相反的数组
语法:array array_reverse ( array array [, bool preserve_keys] )    如果 preserve_keys 为 TRUE 则保留原来的键名

$a = array("name"=>"张三","age"=>20,"sex"=>"男");  
 $b = array_reverse($a);
 foreach($b as $k=>$v){  
    echo “$k=>$v   ”;  // sex=>男 age=>20 name=>张三 
 }

 

6. count -- 计算数组中的单元数目或对象中的属性个数
语法:int count ( mixed var [, int mode] )
如果可选的 mode 参数设为 COUNT_RECURSIVE(或 1),count() 将递归地对数组计数。

 

7. array_count_values -- 统计数组中所有的值出现的次数
语法:array array_count_values ( array input )

 

8.  array_unique -- 移除数组中重复的值
语法:array array_unique ( array array )

 

9. array_filter --  用回调函数过滤数组中的单元
语法:rray array_filter ( array input [, callback callback] )
依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
如果没有提供 callback 函数,array_filter() 将删除 input 中所有等值为 FALSE 的条目。  

 

10. array_walk--对数组中的每个成员应用用户函数
语法:bool array_walk ( array &array, callback funcname [, mixed userdata] )
如果成功则返回 TRUE,失败则返回 FALSE。
将用户自定义函数 funcname 应用到 array 数组中的每个单元。典型情况下 funcname 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata,将被作为第三个参数传递给 callback funcname。
array_walk() 不会受到 array 内部数组指针的影响。array_walk() 会遍历整个数组而不管指针的位置。

 

11.  array_map --  将回调函数作用到给定数组的单元上
语法: array array_map ( callback callback, array arr1 [, array ...] )
array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

 

12. 数组的排序函数

sort -- 对数组排序(升序)
rsort -- 对数组逆向排序(降序)
usort --  使用用户自定义的比较函数对数组中的值进行排序
asort -- 对数组进行排序并保持索引关系(关联数组排序)
arsort --  对数组进行逆向排序并保持索引关系
uasort --  用户自定义的比较函数对数组进行排序并保持索引关联
ksort -- 对数组按照键名排序
krsort -- 对数组按照键名逆向排序
uksort --  使用用户自定义的比较函数对数组中的键名进行排序
natsort --  用“自然排序”算法对数组排序
natcasesort --  用“自然排序”算法对数组不区分大小写字母排序
array_multisort -- 对多个数组或多维数组进行排序

 

13. 拆分、合并、分解与结合数组

array_slice -- 从数组中取出一段
语法: array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )
array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。
如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。

 

array_splice --  把数组中的一部分去掉并用其它值取代
语法:array array_splice ( array &input, int offset [, int length [, array replacement]] )
array_splice() 把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了 replacement 参数,则用 replacement 数组中的单元取代。返回一个包含有被移除单元的数组。注意 input 中的数字键名不被保留。
如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负,则从 input 末尾倒数该值指定的偏移量开始移除。
如果省略 length,则移除数组中从 offset 到结尾的所有部分。
如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代。

 

array_combine --  创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
语法:array array_combine ( array keys, array values )
返回一个 array,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。
如果两个数组的单元数不同或者数组为空时返回 FALSE

 

array_merge -- 合并一个或多个数组
语法: array array_merge ( array array1 [, array array2 [, array ...]] )
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。

 

array_intersect -- 计算数组的交集
语法 array array_intersect ( array array1, array array2 [, array ...] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。

 

array_diff -- 计算数组的差集
语法:array array_diff ( array array1, array array2 [, array ...] )
array_diff() 返回一个数组,该数组包括了所有在 array1 中但是不在任何其它参数数组中的值。注意键名保留不变。

 

14.数组与数据结构

array_shift --  将数组开头的单元移出数组
语法:mixed array_shift ( array &array )
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。如果 array 为空(或者不是数组),则返回 NULL。

array_unshift --  在数组开头插入一个或多个单元
语法: int array_unshift ( array &array, mixed var [, mixed ...] )
array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。

 

15. 数组随机函数

array_rand --  从数组中随机取出一个或多个单元
shuffle -- 将数组打乱

 




更多内容请关注微信公众号
zbpblog微信公众号

如果您需要转载,可以点击下方按钮可以进行复制粘贴;本站博客文章为原创,请转载时注明以下信息

张柏沛IT技术博客 > PHP基础(七) PHP数组之与数组相关的函数

热门推荐
推荐新闻