php中的数组学习
1、数组的定义使用 array()方式定义
$color =array("red","blue","green");
直接赋值的方式声明数组
$color[0] ="red";
$color[1] = "blue";
$color[2] = "green";
联合使用list()、each()和while循环遍历数组
each()函数需要传递一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置。
list()函数给一组变量赋值,即把数组中的值赋给一些变量
while()函数循环遍历数组
<?PHP
$speed = range(0,200,40);
echo "each实现指针下移 <br />";
echo "0挡的速度是".current(each($speed))."<br />";
echo "1挡的速度是".current(each($speed))."<br />";
echo "2挡的速度是".current(each($speed))."<br />";
echo "3挡的速度是".current(each($speed))."<br />";
echo "4挡的速度是".current(each($speed))."<br />";
echo "5挡的速度是".current(each($speed))."<br />";
echo "使用each函数实现数组指针的移动,进行数组遍历 <br />";
reset($speed);//这里是将数组指针指向数组首
while(list($key,$value)=each($speed)){
echo $key."=>".$value."<br />";
}
?>
数组指针函数
current()函数:取得目前指针位置的内容资料
key()函数:读取目前指针所指向资料的索引值
next()函数:将数组中的内部指针移动到下一个单元
prev()函数:将数组的内部指针倒回一位
end()函数:将数组的内部指针指向最后一个元素
reset()函数:将目前指针无条件移至第一个索引位置
预定义数组
$_SERVER 变量由Web服务器设定或者直接与当前脚本的执行环境相关联
$_ENV 执行环境提交至脚本的变量
$_GET 经由URL请求提交至脚本的变量
$_POST 经由HTTP POST方法提交至脚本的变量
$_REQUEST 经由GET、POST和COOKIE机制提交至脚本的变量
$_FILES 经由HTTP POST文件上传而提交至脚本的变量
$_COOKIE 经由HTTP Cookies方法提交至脚本的变量
$_SESSION 当前注册给脚本会话的变脸
$GLOBALS 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键名为全局变量的名称
数组的相关处理函数
array_values()返回数组中所有元素的值
array_keys()返回数组中所有的键名
array_flip()交换数组中的键和值
array_reverse()将数组中的元素顺序翻转
count()计算数组中元素数目或对象中的属性个数
array_count_values()统计数组中所有值出现次数
array_unique()删除数组中重复值
array_filter()用回调函数过滤数组中的元素
array_walk()对数组中的每个元素应用回调函数处理
array_map()将回调函数作用到给定数组元素上,返回用户自定义函数作用后的数组
sort()由小到大的升序对给定数组的值排序
rsort()对数组的元素按照键值进行由大到小的逆向排序
usort()使用用户自定义的回调函数对数组排序
asort()对数组进行由小到大排序并保持索引关系
arsort()对数组进行由大到小的逆向排序并保持索引关系
uasort()使用用户自定义的比较回调函数对数组中的值进行拍讯并保持索引关联
ksort()按照键名对数组进行由小到大的排序,为数值值保留原来的键
krsort()将数组按照由大到小的键逆向排序,为数组值保留原来的键
uksort()使用用户自定义的比较回调函数对数组中的键名进行排序
natsort()用自然排序算法对给定数组中的元素排序
natcasesort()用不区分大小写的自然顺序算法对给定数组中的元素排序
array_multisort()对多个数组或多维数组进行排序
拆分、合并、分解和接合数组
array_slice()在数组中根据条件取出一段值并返回
array_splice()从数组中移除选定的元素,并用新元素取代它
array_combine()通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值
array_merge() 把一个或多个数组合并为一个数组
array_merge_recursive() 把一个或多个数组合并为一个数组
array_intersect() 用于比较两个(或更多个)数组的键值,并返回交集
array_intersect_assoc() 用于比较两个(或更多个)数组的键名和键值,并返回交集
array_intersect_key() 用于比较两个(或更多个)数组的键名 ,并返回交集
array_intersect_uassoc() 用于比较两个(或更多个)数组的键名和键值 ,并返回交集
array_intersect_ukey() 用于比较两个(或更多个)数组的键名 ,并返回交集
array_diff() 返回两个数组的差集数组
array_diff_assoc() 用于比较两个(或更多个)数组的键名和键值 ,并返回差集
array_diff_key() 用于比较两个(或更多个)数组的键名 ,并返回差集
array_diff_uassoc() 用于比较两个(或更多个)数组的键名和键值 ,并返回差集
array_diff_ukey() 用于比较两个(或更多个)数组的键名 ,并返回差集
数组实现堆栈、队列
array_push() 向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度
array_pop() 删除数组中的最后一个元素
array_shift() 删除数组中第一个元素,并返回被删除元素的值
array_unshift() 用于向数组插入新元素。新数组的值将被插入到数组的开头
其他数组处理函数
array_rand() 返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组
shuffle() 把数组中的元素按随机顺序重新排列
array_sum() 返回数组中所有值的和
range() 创建一个包含指定范围的元素的数组
extract() 从数组中将变量导入到当前的符号表
compact() 创建包含变量名和它们的值的数组
array_search() 在数组中搜索某个键值,并返回对应的键名
array_pad() 将指定数量的带有指定值的元素插入到数组中
array_rand() 返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组
array_reduce() 向用户自定义函数发送数组中的值,并返回一个字符串
array_fill()用键值填充数组
array_chunk() 把数组分割为新的数组块
array_column() 返回输入数组中某个单一列的值
array_count_values() 对数组中的所有值进行计数