当前位置: 首页 > news >正文

入门PHP就来我这(纯干货)05

~~~~ 有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 ~~~~

路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。

1 数组及创建

数组,顾名思义,本质上就是一系列数据的组合。在这个组合中,每个数据都是独立的,可以对每个单独的数据进行分配和读取。在程序设计中引入数组可以更有效地管理和处理数据。

数组中每个实体都包含两个项:键(也叫下标)和值。可以通过键值来获取相应数组元素的值。

在PHP编程中,创建数组的方法主要有两种:一种是应用array()函数创建数组,另一种是直接通过数组元素赋值的方式创建数组。

1.1 array()创建数组
<?php $array = array("php","java","c++"); print_r($array); 
?>

此时如果我们想格式化输出内容,可以在输出的时候添加一个echo "<pre>";

<?php$array = array("php","java","c++");echo "<pre>";print_r($array);
?>

注意:从PHP5.4起可以使用短数组定义语法,用[]代替array(),如$array=["php","java","c++"];。

1.2 []创建数组
<?php$array = ["php","java","c++"];echo "<pre>";print_r($array);
?>

注意此时默认创建的数组的下标是从0开始的,因此如果需要把下标开始设置成1开头的,可以采用下面的方法。


<?php$array = array("1"=>"php","2"=>"java","3"=>"c++");echo "<pre>";print_r($array);
?>

1.3 数组赋值

数组赋值直接通过$array[1]="test";方式。

<?php$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开始,不需要特别指定。

<?php$pro1 = array("PHP","java","cpp");echo "<pre>";print_r($pro1)?>

2.2 关联数组

关联数组的键名可以是数值和字符串混合的形式,而不像数字索引数组的键名只能是数字。在一个数组中,只要有一个键名不是数字,那么这个数组就称为关联数组。

<?php$pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp");echo "<pre>";$pro1["C"] = 9;print_r($pro1);?>

3 多维度数组(主要是二维)

3.1 二维数组定义

数组中不一定就一个键名和值的简单列表,每个位置还可以保存另一个数组。使用这种方法可以创建一个二维数组,二维数组其实也是类似于表格的形式。

<?php$pro1 = array("A"=>array(1,2,3),"B"=>"java","C"=>"cpp");echo "<pre>";$pro1["C"] = 9;print_r($pro1);?>

4 数组常用函数

4.1 遍历数组函数

使用foreach()函数遍历数组

<?php$pro1 = array("A"=>array(1,2,3),"B"=>"java","C"=>"cpp");foreach($pro1 as $key=>$value){echo $key.":".$value."<br>";}?>

4.2 统计数组元素个数

使用count()函数对数组中元素个数进行统计。

<?php$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()函数可以实现查询数组中给定的值的位置索引。

<?php$pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp");$res = array_search("java",$pro1);echo "被查询的数组元素索引为:".$res;?>

4.4 获取数组中最后一个元素

通过array_pop()获取数组中最后一个元素,返回其值。

<?php$pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp");$res = array_pop($pro1);echo "最后一个数组元素为:".$res;?>

4.5 向数组中添加元素

使用array_push()函数向数组中添加元素,返回最终的数组元素总数。

<?php$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()函数可以删除数组中国重复元素。

<?php$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()

用“自然排序”算法对数组进行不区分大小写字母的排序

小小案例带你飘一下
<?php/*** 根据数组中的某个键值的大小进行排序,仅支持二维数组* @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面向对象。

大家如果喜欢技术,并想有个好的交流平台可以关注我的 我的知乎首页,会不定期分享本人觉得比较好的技术类电子书。

另外,自己创建的一个技术qq群,玩转技术群,该群里功能:分享技能,电子书,代码,以及兼职项目等交流,欢迎大家加入一起交流。

^V^ ###制作不易,您的关注和点赞是路老师更新的动力!###^V^

相关文章:

  • 【CSS】什么是CSS的columns属性
  • 全面了解机器学习
  • 数据结构 - C/C++ - 队列
  • 《刺客信条:英灵殿》找不到emp.dll文件的多种解决方法,亲测有效
  • java 代码块
  • 【C++】main函数及返回值深度解析
  • antd中Select大数据分页触底刷新处理优化
  • 虚拟纪念展馆建设的重大意义:重新定义纪念活动的未来
  • C++——探索智能指针的设计原理
  • 深入Ruby缓存:掌握Memcached的使用艺术
  • 【ARM系列】GIC600AE功能安全
  • modify filename
  • 【有为己之心方能克己】
  • 推广旅游卡项目,一个月创收十几万,为何说旅游卡项目堪称盈利利器?
  • Oracle JDK 与 OpenJDK:如何选择及其区别
  • 【剑指offer】让抽象问题具体化
  • Angular数据绑定机制
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • css选择器
  • ES6 ...操作符
  • 包装类对象
  • 如何解决微信端直接跳WAP端
  • 算法-插入排序
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 小试R空间处理新库sf
  • 阿里云ACE认证之理解CDN技术
  • 阿里云重庆大学大数据训练营落地分享
  • 第二十章:异步和文件I/O.(二十三)
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • # centos7下FFmpeg环境部署记录
  • (09)Hive——CTE 公共表达式
  • (1)(1.9) MSP (version 4.2)
  • (4)事件处理——(7)简单事件(Simple events)
  • (6)设计一个TimeMap
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (ZT)薛涌:谈贫说富
  • (二)PySpark3:SparkSQL编程
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (转)socket Aio demo
  • (转)我也是一只IT小小鸟
  • (转)用.Net的File控件上传文件的解决方案
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .md即markdown文件的基本常用编写语法
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET8 动态添加定时任务(CRON Expression, Whatever)
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET技术成长路线架构图
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .project文件
  • .sh 的运行
  • /etc/fstab和/etc/mtab的区别
  • ??javascript里的变量问题