当前位置:文档之家› 6---PHP数组函数

6---PHP数组函数

(1)数组的概念与分类
定义:数组是php中最重要的数据类型之一,在php中的应用非常的广泛。

因为php 是弱类型的编程语言,所以php中的数组变量可以存储任意多个、任意类型的数据。

使用数组的目的,就是将多个相互关联的数据组织到一起,形成一个集合,作为一个单元使用达到批量数据处理的目的。

Php中数组的根据索引来分为关联数组和数字索引数组。

如果一个数组中的索引全部为数字,那么数组就称为数字索引数组。

如果数组中有一个索引为字符串那么数组就称为关联数组。

(2)Php中数组的定义
A.定义方式
(1)使用array()声明
可以用array()语言结构来新建一个数组。

它接受任意数量用逗号分隔的键(key) => 值(value) 对,例如:
<?php
$arr = array("foo" => "bar", 12 => true);
echo $arr["foo"]; // bar
echo $arr[12]; // 1
?>
其中键可以为整型或字符串型,值可以为任何类型。

如果对给出的值
没有指定键名,则取当前最大的整数索引值,而新的键名将是该值加
一。

如果指定的键名已经有了值,则该值会被覆盖。

(2)使用[]声明
我们可以使用[]来定义和修改数组元素
<?php
$arr[] = 56;
Echo $arr[0];//56
?>
B.对数组元素的操作
(1)追加数组元素(就是在数组的末尾添加数组元素)
$数组名[键名]=值;
(2)更新数组元素
$数组名[键名]=新值;
(3)删除数组元素
Unset($数组名[键名])
(4)在数组头部添加数组元素
Array_unshift($arr, $value),在数组的开头插入一个元素。

(5)在数组的尾部添加数组元素
Array_push($arr, $value1, $value2..),将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素个数。

(6)在数组头部删除元素
Array_shift($arr),将数组的第一个元素移出,并返回此元素
(7)在数组的尾部删除元素
Array_pop($arr);
(3)访问数组的内容
A、使用下标访问
Echo $数组名[键名]
B、使用for循环访问(本方法只适用于数字索引数组)
<?php
For($i=0;$i<count($arr);$i++){
Echo $arr[$i];
}
?>
C、适用foreach循环访问(适用于所有数组)
Foreach(数组名as $key=>$value){
Echo $key."=>".$value;//$key存储当前元素索引,$value存储当前元素}
(4)字符串与数组之间的转换
A.将数组转换为字符串
Implode($separator, $arr)将数组用$separator连接成一个字符串。

B.Explode($separator,$str)将字符串用$separator分割成一个数组。

如果在$str中没有找到$separator,那么将会把整个字符串当成一个数组元素。

(5)多维数组的声明与遍历
A、PHP中可以定义多维数组。

<?php
$arr = array(
…key1‟=> array("foo" => "bar", 12 => true);
);
Var_dump($arr[“key1”]);//输出数组array("foo" => "bar", 12 => true);
Echo $arr[“key1”][“foo”];//输出bar;
?>
B、<?php
$arr=array(
array("香蕉","橘子","苹果"),
"白菜","萝卜"
);
foreach($arr as $value){
if(is_array($value)){
foreach($value as $value1){
echo $value1;
}
}else{
echo $value;
}
}
?>
C、九种系统预定义数组
$GLOBALS —引用全局作用域中可用的全部变量
$_SERVER —服务器和执行环境信息
$_GET — HTTP GET 变量
$_POST — HTTP POST 变量
$_FILES — HTTP 文件上传变量
$_REQUEST — HTTP Request 变量
$_SESSION — Session 变量
$_ENV —环境变量
$_COOKIE — HTTP Cookies
(6)数组相关处理函数
A、数组的键/值操作函数
Array_keys($arr),获得数组的键名。

Array_values($arr),获得数组的值。

In_array($value, $arr),检索$value是否在$arr中,返回布尔值。

Array_key_exists($key, $arr),检索数组$arr中,是否有$key这个键名。

Array_search($value, $arr), 检索$value是否在$arr中,若存在返回键名。

Array_reverse($arr, true),将一个数组逆向排序,如果第二个参数为true,则保持键名。

Array_flip($arr)交换数组的键和值
B、统计数组元素个数和唯一性
Count($arr)统计数组元素的个数
Array_count_values($arr)统计数组中所有值的出现次数
Array_unique($arr)移除数组中的重复值
C、数组的排序
通过值排序
Sort($arr),由小到大排序。

Rsort($arr),由大到小排序。

Usort($arr, function),使用用户自定义的比较函数排序。

通过键排序
Ksort($arr),由小到大排序
Rksort($arr),由大到小排序。

Uksort($arr, function),使用用户自定义的比较函数排序。

D、其他常用的函数
Array_rand($arr, $num),随机从数组中取得$num个元素。

Shuffle($arr),将数组的顺序打乱。

Array_sum($arr),对数组的所有元素求和。

extract() 将键名变量键值。

相关主题