~~~~ 有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 ~~~~
路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。
编辑
1 数组及创建
数组,顾名思义,本质上就是一系列数据的组合。在这个组合中,每个数据都是独立的,可以对每个单独的数据进行分配和读取。在程序设计中引入数组可以更有效地管理和处理数据。
编辑
数组中每个实体都包含两个项:键(也叫下标)和值。可以通过键值来获取相应数组元素的值。
在PHP编程中,创建数组的方法主要有两种:一种是应用array()函数创建数组,另一种是直接通过数组元素赋值的方式创建数组。
1.1 array()创建数组
$array = array("php","java","c++"); print_r($array);
编辑
此时如果我们想格式化输出内容,可以在输出的时候添加一个echo "<pre>";
$array = array("php","java","c++"); echo "<pre>"; print_r($array);
编辑
注意:从PHP5.4起可以使用短数组定义语法,用[]代替array(),如$array=["php","java","c++"];。
1.2 []创建数组
$array = ["php","java","c++"]; echo "<pre>"; print_r($array);
编辑
注意:此时默认创建的数组的下标是从0开始的,因此如果需要把下标开始设置成1开头的,可以采用下面的方法。
$array = array("1"=>"php","2"=>"java","3"=>"c++"); echo "<pre>"; print_r($array);
编辑
1.3 数组赋值
数组赋值直接通过$array[1]="test";方式。
$array = array("1"=>"php","2"=>"java","3"=>"c++"); echo "<pre>"; print_r($array); $array[1] = "PHP语言"; $array[2] = "JAVA语言"; $array[3] = "CPP语言"; echo "<hr>"; echo "赋值结果:<br>"; print_r($array);
编辑
2 数组类型
PHP支持两种数组:数字索引数组(indexed array)和关联数组(associative array),前者使用数字作为关键字,后者使用字符串作为键。
2.1 数字索引数组
PHP数字索引一般表示数组元素在数组中的位置,它由数字组成,一般默认从0开始,不需要特别指定。
$pro1 = array("PHP","java","cpp"); echo "<pre>"; print_r($pro1)
编辑
2.2 关联数组
关联数组的键名可以是数值和字符串混合的形式,而不像数字索引数组的键名只能是数字。在一个数组中,只要有一个键名不是数字,那么这个数组就称为关联数组。
编辑
$pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp"); echo "<pre>"; $pro1["C"] = 9; print_r($pro1);
编辑
3 多维度数组(主要是二维)
3.1 二维数组定义
数组中不一定就一个键名和值的简单列表,每个位置还可以保存另一个数组。使用这种方法可以创建一个二维数组,二维数组其实也是类似于表格的形式。
$pro1 = array( "A"=>array(1,2,3), "B"=>"java", "C"=>"cpp" ); echo "<pre>"; $pro1["C"] = 9; print_r($pro1);
编辑
4 数组常用函数
4.1 遍历数组函数
使用foreach()函数遍历数组
$pro1 = array( "A"=>array(1,2,3), "B"=>"java", "C"=>"cpp" ); foreach($pro1 as $key=>$value){ echo $key.":".$value."<br>"; }
编辑
4.2 统计数组元素个数
使用count()函数对数组中元素个数进行统计。
$pro1 = array( "A"=>array(1,2,3), "B"=>"java", "C"=>"cpp" ); foreach($pro1 as $key=>$value){ echo $key.":".$value."<br>"; } echo "第一层数组元素个数为:".count($pro1); echo "<br>"; echo "所有层元素个数和为".count($pro1, COUNT_RECURSIVE);//COUNT_RECURSIVE也可以改为1,默认为0
编辑
4.3 查询数组中指定元素
array_search()函数可以实现查询数组中给定的值的位置索引。
$pro1 = array( "A"=>"PHP", "B"=>"java", "C"=>"cpp" ); $res = array_search("java",$pro1); echo "被查询的数组元素索引为:".$res;
编辑
4.4 获取数组中最后一个元素
通过array_pop()获取数组中最后一个元素,返回其值。
$pro1 = array( "A"=>"PHP", "B"=>"java", "C"=>"cpp" ); $res = array_pop($pro1); echo "最后一个数组元素为:".$res;
编辑
4.5 向数组中添加元素
使用array_push()函数向数组中添加元素,返回最终的数组元素总数。
$pro1 = array( "A"=>"PHP", "B"=>"java", "C"=>"cpp" ); echo "原来的数组个数为:".count($pro1); echo "<br>"; $str = "android"; $res = array_push($pro1,$str); echo "最终的数组元素个数为:".$res;
编辑
4.6 删除数组中重复元素
通过array_unique()函数可以删除数组中国重复元素。
$pro1 = array( "A"=>"PHP", "B"=>"java", "C"=>"cpp", "D"=>"cpp", "E"=>"java" ); echo "<pre>"; print_r($pro1); echo "---------------<br>"; $res = array_unique($pro1); print_r($res);
编辑
4.7 数组排序函数
常用的排序函数见下表:
函数名称 |
描述 |
sort() |
从低到高的顺序排序,不保持索引关系。 |
rsort() |
对数组逆向排序 |
asort() |
对数组进行排序并保持索引关系 |
arsort() |
对数组进行逆向排序并保持索引关系 |
ksort() |
对数组按照键名排序 |
krsort() |
对数组按照键名逆向排序 |
natsort() |
用“自然排序”算法对数组排序 |
natcasesort() |
用“自然排序”算法对数组进行不区分大小写字母的排序 |
小小案例带你飘一下:
/** * 根据数组中的某个键值的大小进行排序,仅支持二维数组 * @param array $array 排序数组 * @param string $key 键值 * @param bool $asc 默认正序排序,false为降序 * @return array 排序后的数组 */ function arraySortByKey($array=array(), $key= " " ,$asc=true){ $result = array(); foreach($array as $k=>$v) { $values[$k] = isset($v[$key])?$v[$key]:" "; } unset($v); $asc?asort($values):arsort($values); foreach($values as $k=>$v) { $result[$k] = $array[$k]; } return $result; } // 定义数组 $data = array( array("post_id"=>1,'title'=>'如何学好php','reply_num'=>500), array("post_id"=>2,'title'=>'如何学好java','reply_num'=>600), array("post_id"=>3,'title'=>'如何学好cpp','reply_num'=>400) ); // 新的排序结果 $new_array = arraySortByKey($data,'reply_num',false); echo "<pre>"; print_r($new_array);
编辑
下节预告:PHP面向对象。