数组分类
索引数组
- 索引值为整数的数组,使用整数作为索引
关联数组
- 索引值为字符串的数组,使用字符串作为索引
创建数组
- 不需要指定数组的大小
- 不需要再使用数组之前声明
- 同一个数组中可以存储任何类型的数据
<?php
// -------创建数组方法一--------------------
$student1[0] = 10;
$student1[1] = '苦涩';
$student1[2] = true;
$student1[3] = 71;
//需要使用print_r()函数来输出数组的具体内容
// print_r($student1);
// echo $student1[3];
// -------创建数组方法二--------------------
// 如果省略索引值不写,那么默认索引值就是整数,从0开始
$student2[] = 10;
$student2[] = '苦涩';
$student2[] = true;
$student2[] = 72;
// print_r($student2);
// -------创建数组方法三--------------------
$student3 = array(10, "苦涩", true, 73);
// print_r($student3);
// -------创建数组方法四--------------------
$student4 = array(
0 => 10,
1 => "苦涩",
3 => true,
4 => 74
);
// print_r($student4);
// -------创建数组方法五--------------------
$student5["num"] = 10;
$student5["name"] = '苦涩';
$student5["sex"] = true;
$student5["grade"] = 75;
// print_r($student5);
// 使用数组里面具体数据的方法
// echo $student5['name'];
// echo $student5[1];//关联数组不能使用下标
// -------创建数组方法六--------------------
$student6 = array(
"num" => 10,
"name" => "苦涩",
"sex" => true,
"grade" => 76
);
// print_r($student6);
?>
遍历数组
语法:foreach(数组名 as 索引 => 索引值)
<?php
// -------------遍历数组-----------------------------
// 索引数组
$arr = array(
'a', 'b', 'c','d','e'
);
// for循环遍历,使用count(数组)返回数组里数据的个数
// echo count($arr);
for($i = 0; $i < count($arr); $i++){
echo $arr[$i]."<br>";
}
// ---------------------------------------------------
//关联数组
$arr2 = array(
'name' => "苦涩",
'num' => 10
);
// foreach(数组名 as 变量名)遍历数组
foreach($arr2 as $value){
echo $value.'<br>';
}
// foreach(数组名 as 索引 => 索引值)遍历数组
foreach($arr2 as $key => $value){
echo $key.'=>'.$value.'<br>';
}
// -----------遍历多维数组-------------------------------
$arr3 = array(
array(1, 2, 3),
array(4, 5, 6)
);
foreach($arr3 as $val){
echo $val."<br>";
foreach($val as $val2){
echo $val2."<br>";
}
}
?>
预定义超全局数组变量
-
已经定义好了(存在)的变量(存放的数据的类型是数组)
-
超全局:超级全局变量,作用域
-
传递数据(提交数据)给服务器端主要有两种方式
get方式
http://localhost/?参数名=参数值
- 在服务器端(请求的PHP文件这边)可以通过$_GET来获取
- $_GET索引为参数名,索引值对应参数值
post方式
- 比如表单post发送过来的
- 可以通过$_POST来获取数据
<?php
var_dump($_GET);
echo "<hr>";
var_dump($_POST);
echo $_POST['userName'];
?>
<form method="post">
姓名:<input type='text' name="userName"/><br>
性别:<input type='text' name="sex"/><br>
<input type='submit' value="提交"/>
</form>
处理数组的相关函数
array_count_values()
:统计数组中所有的值出现的次数array_key_exists()
:检查给定的键名或索引是否存在与数组中array_search()
:在数组中搜索给定的值,如果成功则返回相应的键名,否则返回falsecount()
:统计数组中的元素个数in_array()
:在数组中搜索给定的值,找到返回true,否则返回falselist()
:把数组中的值赋给一些变量,只能用于数字索引的数组,从右往左赋值asort()
:对数组进行排序并保持索引关系,成功时返回true,否则返回falsearra_filter()
:用回调函数过滤数组中的值,该函数返回true则保留元素,否则过滤掉
<?php
$arr = array(1, 'hello', 1, 'world', 1, 'hello');
print_r(array_count_values($arr));
$arr2 = array('first' => 111, 'second' =>222);
var_dump(array_key_exists('first', $arr2));
var_dump(array_search(111, $arr2));
echo count($arr);
var_dump(in_array(111, $arr2));
list($diYi, $diEr, $diSan, $diSi, $diWu, $diLiu) = $arr;
echo $diSi.'<br>';
$arr3 = array(
'苦涩1' => '80',
'苦涩2' => '73',
'苦涩3' => '90'
);
asort($arr3);
print_r($arr3.'<br>');
function odd($var){
return($var % 2 ==1);
}
function even($var){
return($var % 2 == 0);
}
$arr4 = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
$arr5 = array(6, 7, 8, 9, 10);
echo 'odd : ';
print_r(array_filter($arr4, 'odd'));
echo '<br>even: ';
print_r(array_filter($arr5, 'even'));
?>