WEB安全之PHP基础(二):PHP数组及运算符、控制语句
- 补充:替换函数——把字符串里面的1转为0
1.php数组
- 数组是一个能在单个变量中存储多个值的特殊变量。
- 在 PHP 中,array() 函数用于创建数组:
array();
数组的分类
- 在 PHP 中,有三种类型的数组:
数值数组 - 带有数字 ID 键的数组
关联数组 - 带有指定的键的数组,每个键关联一个值
多维数组 - 包含一个或多个数组的数组
数组的声明
$array1 = array();
<?php
$cars=array("Volvo","BMW","Toyota");//简单的数组
echo count($cars);//count()返回数组的长度
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");//关联数组
//其中包含多个键值对
echo "Peter is " . $age['Peter'] . " years old.";
foreach($age as $x=>$x_value)//关联数组的遍历方法
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
- 打印数组
- 数值数组
- 关联数组
- 多维数组
数组的取值
- 取0下标,取到a
- 通过键来返回
- 数组的长度
- 遍历数组元素,数值型
- 直接输出值
- for循环只能遍历数值数组
数组排序的内置函数
- 在PHP 中定义了多个数组排序的内置函数:
- sort() - 对数组进行升序排列
rsort() - 对数组进行降序排列
asort() - 根据关联数组的值,对数组进行升序排列
ksort() - 根据关联数组的键,对数组进行升序排列
arsort() - 根据关联数组的值,对数组进行降序排列
krsort() - 根据关联数组的键,对数组进行降序排列 - abc的降序排序
数组的操作
数组的合并
$array1 =array('a','b','c');
$array2 = array('a1'=>'php','a2'=>'python','a3'=>'java');
$array3 = array_merge($array1,$array2);
添加数组元素
- array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
array_push($array1,'d','e');
print_r($array1);
下表为空 自动添加参数
$array1[]='d';
有键值的
$array1['a4']='javasciprt';
- 增加值
- 增加一个关联数组
- 添加到指定位置
<?php
$array1 = array('a', 'b', 'c', 'd', 'e');
$array2 = array('x');
array_splice($array1, 3, 0, $array2); // 插入到位置3且删除0个
print_r($array1);
?>
- 更改下标为0的
- 更改关联数组
- 添加指定位置的值,(从多少位置删除,并增加多少位置的值)
- array_splice(数组,位置,删除几个,增加元素)
- 在b前面增加
- 删除一个值,b不见了
- 删除某一个元素
<?php
$array1 = array('a', 'b', 'c', 'd', 'e');
$array2 = array('x');
array_splice($array1, 3, 1);
print_r($array1);
?>
- unset 销毁指定的元素
$array1 = array('a', 'b', 'c', 'd', 'e');
unset($array1[0]);
print_r($array1);
- 销毁第0个,a就没了
- 销毁指定键值
- array_pop():将数组最后一个单元弹出(出栈)
- 修改数组中某个元素
$array1 = array('a', 'b', 'c', 'd', 'e');
$array1[0]='aa';
print_r($array1);
- 字母中最后一个元素弹出
常用的数组函数
is_array 判断是否为数组
count 数组的元素数目
array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
array_key_exists()在给定的 key 存在于数组中时返回 TRUE
array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变
array_shift() 将array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
array_unique() 接受 array 作为输入并返回没有重复值的新数组。注意键名保留不变。 array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。
in_array — 检查数组中是否存在某个值 如果找到指定的值则返回 TRUE,否则返回 FALSE 。in_array()是区分大小写的。
- 判断是否为数组
- 传入字符串输出为空
- 在数组中搜索给定的值,如果成功则返回相应的键名
- 搜索php让它返回键名
- 在给定的 key 存在于数组中时返回 TRUE
- 查看array2中是否存在键a1,存在返回true
- 接受 array 作为输入并返回没有重复值的新数组。注意键名保留不变。 array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。
- 即把重复的值去掉
- 检查数组中是否存在某个值 如果找到指定的值则返回 TRUE,否则返回 FALSE 。in_array()是区分大小写的。
- 判断是否为数组
- 数组的声明(补充)
- 数组的另一种形式
2.运算符
- 基本运算符:
- 赋值运算符:
- 递增/递减运算符:
- 比较运算符:
- ===,要同类型
- 逻辑运算符:
- 与
- 异或
- 或
- 与
- 三元运算符:
(expr1) ? (expr2) : (expr3) - 3大于2返回true否则返回false
3.控制语句
- 控制语法的语句结构和其他大多数语言结构相同,有以下两类:
3.1条件控制语句
- if 语句 - 在条件成立时执行代码
if…else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
if…elseif…else 语句 - 在若干条件之一成立时执行一个代码块
switch 语句 - 在若干条件之一成立时执行一个代码块 - 1不大于2
- if else
- if else else
- switch
- break用来终止
3.2循环控制语句
- while - 只要指定的条件成立,则循环执行代码块
do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
for - 循环执行代码块指定的次数
foreach - 根据数组中每个元素来循环代码块 - break语句用于终止本次循环
continue语句的作用是跳出本次循环,接着执行下一次循环 - while
- 来到99,不执行
- 继续执行
- do…while 不管条件是否成立,内容都会执行一次
- 执行1,执行99次+1
- 输出内容一样
- for循环
- for和foreach循环遍历数组比较多
- 获取值