PHP数组
PHP数组
一、数组类型
1.索引数组
概念:索引值为整型的数组;
2.关联数组
概念:索引值为字符串的数组
二、数组创建
方法一:
变量名称[索引值]=数据;
变量名称[] = 数据;//不写索引值,默认是索引数组,从0开始
方法二:
变量名称=array(
索引值=>数据,
········
)
数组里面还可以存放数组类型的数据,同一个数组中可以储存任何类型的数据;
多维数组:
访问数值的方法:变量名称【索引值】【索引值】
三数组的遍历
遍历数组:每个都经历一边的意思
1)for循环
用的比较少,有缺陷
2)foreach语句来实现遍历数组的目的
foreach(数组变量 as 变量1){
//每次循环执行的语句
变量1代表当前正在经历(访问)的数据
}
foreach(数组变量 as 变量1 => 变量2){
//每次循环执行的语句
变量1代表当前正在经历(访问)的数据的索引值
变量2代表当前正在经历(访问)的数据
}
四、预定义超全局数组变量
已经定义好(存在)的变量(存放的数据类型是数组)
超全局:超级全局变量,作用域(有效区域)
传递数据(提交数据)给服务器主要有两种方式
1.get方式
比如:http:/localhost/demo/index.php?参数名=参数值&参数名=参数值。。。。
在服务器端(请求的php文件这边)可以通过$_GET来获取到
$_GET索引值为参数名,索引值对应的数据就是参数值
<?php
var_dump($_GET);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>预定义超全局数据变量</title>
</head>
<body>
<form method="get">
姓名:<input type="text" name="username" /><br />
性别:<input type="text" name="sex" /> <br />
<input type="submit" value="提交" />
</form>
</body>
</html>
2.post方式
比如表单 post发送过的数据可以通过$_POST来获取到
<?php
var_dump($_POST);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>预定义超全局数据变量</title>
</head>
<body>
<form method="post">
姓名:<input type="text" name="username" /><br />
性别:<input type="text" name="sex" /> <br />
<input type="submit" value="提交" />
</form>
</body>
</html>
五、处理数组的相关函数
1.array_count_values:统计数组所有的值;
$array = array(1, "hello", 1, "world", "hello");
var_dump(array_count_values($array));
2.array_key_exists:检查数组里是否有指定的键名或索引
$search_array = array('first' => null, 'second' => 4);
var_dump(array_key_exists("second",$search_array));
3.array_search:在数组中搜索给定的值,如果成功则返回首个相应的键名
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
var_dump(array_search('blue',$array));
4.count:计算数组中的单元数目,或对象中的属性个数
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));
5.in_array:检查数组中是否存在某个值
$os = array("Mac", "NT", "Irix", "Linux");
var_dump(in_array("mac",$os)); //这里的结果为false
var_dump(in_array("Mac")); //严格区分大小写
6.list:把数组中的值赋给一组变量 (PHP5中list() 从最右边的参数开始赋值)
$info = array('coffee', 'brown', 'caffeine');
list($li,$wu,$ming) = $info;
var_dump($li);
//list()从最右边的参数开始赋值
list($arr[],$arr[],$arr[]) = $num(50,60,70); //PHP5中从右往左赋值,PHP7中从左往右赋值
prit_r($arr);
7.asort:对数组进行排序并保持索引关系
//arsort:对数组进行逆向排序并保持索引关系;将数组中的索引按照降序排列
//$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
//arsort($fruits)
//var_dump($fruits);
//结果如下
//Array ( [a] => orange [d] => lemon [b] => banana [c] => apple )
//asort:对数组中的值进行升序排列,
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
print_r($fruits);
//结果如下
//Array ( [c] => apple [b] => banana [d] => lemon [a] => orange )
8.array_filter:用回调函数过滤数组中的单元
function odd($var)
{
// returns whether the input integer is odd
return($var & 1);
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
print_r(array_filter($array1, "odd"));