php数组(数组的定义、使用、删除数组、数组操作符、数组排序、数组元素查找、数组的常用函数)
什么是数组
数组是一种数据类型,在PHP中广泛应用。
数组是一个可以存储一组或一系列数值的变量。
在PHP中,数组中的元素分为两个部分,分别为键(Key)和值(Value)。
“键”为元素的识别名称,也称为数组下标,“值”为元素的内容。 “键”和“值”之间存在一种对应关系,称为映射。
根据下标的数据类型,可以将数组分为索引数组和关联数组两种类型。
索引数组:
索引数组是指下标为整数的数组。
索引数组的下标从0开始,依次递增。
当需要使用位置来标识数组元素时,可以使用索引数组。
需要注意的是,索引数组的“键”可以自己指定,默认情况下,是从0开始的。
关联数组 :
关联数组是指下标为字符串的数组。 通常情况下,关联数组元素的键和值之间有一定的业务逻辑关系,因此,通常使用关联数组存储一系列具有逻辑关系的变量。
在PHP中定义一个数组非常简单,既不需要事先声明,也不需要指定数组的大小。
1、使用赋值方式定义数组
2、使用array()函数定义数组
在定义数组时,通常有两种方式:一种是直接给数组中的元素赋值,另一种是使用array()函数定义数组。
数组的定义
使用赋值方式定义数组:
使用赋值方式定义数组是最简单的方式。 这种方式实际上就是创建一个数组变量,然后使用赋值运算符直接给变量赋值,其语法格式如下:
$arrayName[key] = value
$arrayName”是数组名。
“key”是数组的下标,其类型可以是整型或字符串。
“value”可以是任意类型的数据。
定义一个索引数组的示例代码如下:
$arr[0] = 123; //整数
$arr[1] = "hello"; //字符串
$arr[2] = 45.6; //浮点数
$arr[3] = true; //布尔值
$arr[4] = null; //null
代码中定义了一个索引数组变量$arr。 需要注意的是,如果没有指定“键”(即[]内的键名省略不写),则使用默认键,即“键”从0开始,依次递增。
使用赋值方式定义一个关联数组,示例代码如下:
$arr["id"] = 1;
$arr["name"] = "韩某";
$arr["address"] = "北京";
$arr["email"] = "han@tom.com";
关联数组,数组元素的“键”都是字符串,并且“键”与“值”具有一一对应关系。
例:
<?php
echo "<hr>";
$stu=["id"=>1254,"name"=>"刘德华","mobile"=>"13976507648"
];
$stu["sex"]="男";
print_r($stu);
?>
结果图:
使用array()函数定义数组
使用array()函数也可以定义数组,它接收数组的元素作为参数,多个元素之间使用英文逗号分隔,其语法格式如下:
$arrayName = array( key1 => value1, key2 => value2, ...)
如果省略了key部分,则定义的数组默认为索引数组。
使用array()函数定义一个数组,示例代码如下:
$arr = array( 123, "hello", 45.6, true );
在数组$arr中只定义了数组元素的值,省略了“键”的部分,则$arr默认为索引数组,并且“键”从0开始,依次递增。
使用array()函数定义一个关联数组,示例代码如下:
$arr = array("id"=> 1, "name"=> "韩某","address"=> "北京","email"=> "han@tom.com");
数组的使用
在PHP开发中,经常会使用数组。
由于数组中的键和值是映射关系,并且键是数组元素的唯一标识,所以可以根据元素的键来获取该元素的值。
具体语法格式如下:
$数组名[键名]
除了可以使用方括号([])访问数组元素,还可以使用花括号({})。 例如,$arr[0]和$arr{0}的效果是一样的。
如果要查看整个数组的信息, PHP提供了print_r()和var_dump()函数, 专门用于输出数组中的所有元素。
其中,print_r()函数可以按照一定格式显示数组中所有元素的键和值。
var_dump()函数与print_r()函数的用法类似,但是var_dump()函数的功能更加强大,它可以在打印数组元素的同时打印元素中值的数据类型。
删除数组
在实际开发中,有时需要删除数组中的某些元素。
在PHP中提供了unset()函数用于删除数组中的元素。
unset()函数不仅可以删除指定下标的元素还可以删除整个数组。
例:
<?php
$a=[100,200,300,400,500];
unset($a[2]);
var_dump($a);
?>
结果图:
array_splice():
<?php
$a=[100,200,300,400,500];
array_splice($a,2,1);
array_splice($a,3,1);
print_r($a);
?>
结果图:
array_diff():
<?php
$a=[100,200,300,400,500];
$b=array_diff($a,[100,400]);
print_r($b);
?>
结果图:
array_diff_key():
<?php
$stu=["id"=>1001,"name"=>"wangsir","sex"=>"boy","moblie"=>"17398746054"
];
$newstu=array_diff_key($stu,["moblie"=>""]);
print_r($newstu);
?>
结果图:
数组操作符
整型数据可以通过一些运算符进行赋值运算、算术运算、比较运算等操作。
在PHP中,数组这种复合类型的数据也可以进行运算,数组的运算是通过数组操作符实现的。
常见的数组操作运算符如下表所示。
“+”为联合运算符,用于合并数组,如果出现下标相同的元素,则保留第一个数组内的元素。
数组的常见操作
数组在PHP程序中应用非常广泛。在使用数组时,经常需要对数组进行遍历、排序、查找等操作,因此灵活地使用数组对实际开发很重要。
数组遍历
在操作数组时,经常需要依次访问数组中的每个元素,这种操作称为数组的遍历。
在PHP中,通常使用foreach语句实现数组的遍历, 其语法格式有两种,具体如下:
以上两种语法格式都是通过foreach语句来实现对数组的遍历,不同的是,在语法格式一中,只是将当前元素的值赋给$value。而在语法格式二中,将当前元素的键名赋值给$key,值赋值给$value,这样可以同时获取当前元素的键名和值。
数组排序
sort:对数组进行升序排序
<?php
$a=[66,64,90,88,76,100,94];
sort($a);
print_r($a);
?>
rsort:对数组进行降序排序
<?php
$a=[66,64,90,88,76,100,94];
rsort($a);
print_r($a);
?>
asort:对数组进行升序排序并保持索引关系
<?php
$a=["a"=>100,"b"=>50,"c"=>200,"d"=>190];
asort($a);
print_r($a);
?>
ksort:按照键名对数组进行升序排序
<?php
$a=["a"=>100,"b"=>50,"c"=>200,"d"=>190];
ksort($a);
print_r($a);
?>
arsort:对数组进行降序排序并保持索引关系
<?php
$a=["a"=>100,"b"=>50,"c"=>200,"d"=>190];
arsort($a);
print_r($a);
?>
krsort:按照键名对数组进行降序排序
<?php
$a=["a"=>100,"b"=>50,"c"=>200,"d"=>190];
krsort($a);
print_r($a);
?>
数组元素查找
在数组中常用的查找元素的方法有顺序查找和二分法查找
array_search():
<?php
$score=[65,88,50,78,98,35];
echo array_search("98",$score);
echo "<br>数组的长度是:".count($score);
?>
结果图:
数组的常用函数
PHP中提供许多操作数组的函数,只需要调用这些函数就能够实现数组的查找和排序等功能。
基本函数
在使用数组时,经常会对数组中的元素进行操作。为此PHP提供了一些基本函数,如count()、array_unique()等,通过这些函数可以完成一些常见的功能,
is_array()函数:
is_array()函数的作用是判断一个变量是否是数组,如果是数组,则返回true,否则返回false。
count()函数:
count()函数的作用是用于计算数组中元素的个数。
其声明方式如下:
int count(mixed $var [, int $mode ]);
在上述声明中,count()函数接收两个参数,其中$var参数是必需的,它表示传入的数组对象。
$mode参数是可选参数,默认值为0,如果将该参数设置为1,则count()函数会递归计算多维数组中每个元素的个数。
array_unique()函数:
array_unique()函数的作用是移除数组中的重复元素。
其声明方式如下:
array array_unique(array $array)
例:
<?php
$score=[65,88,50,88,65,50,88,98,35];
$x=array_unique($score);
print_r($x);
?>
结果图:
键值对的相关函数:
在PHP中,数组实质上是由键值对构成的一个集合,因此关于键和值的操作尤为重要。
array_keys():
array_keys()函数同样也是用于获取数组中元素对应的键名。不同的是,array_keys()函数可以返回所有匹配的键名。
其声明方式如下:
array array_keys(array $input[,mixed $search_value[,bool $strict]]);
排序函数
数组排序是通过循环遍历数组中的所有元素,然后通过每两个元素之间的比较从而完成的排序。
实际上,PHP提供了多个排序的函数,可以直接调用。例如:sort()函数、rsort()函数、ksort()函数等。
合并和拆分函数
在操作数组过程中,经常会遇到合并或拆分数组的情况。
为此,PHP提供了array_merge()函数和array_chunk()函数
array_merge()函数:
array_merge()函数的作用是合并一个或多个数组。
其声明方式如下:
array array_merge( array $array1 [, array $... ] );
array_merge()将一个或多个数组的单元合并起来,一个数组中的值附加在另一个数组的后面,返回一个新的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到数组的后面。
如果数组是数字索引的,则键名会以连续方式重新编排索引。
array_chunk()函数:
函数array_chunk()的作用是将一个数组分割成多个数组。
array array_chunk( array $input , int $size [, bool $preserve_keys ] );
其他函数
array_rand()函数:
array_rand()函数的作用是从数组中随机取出一个或多个元素。
其声明方式如下:
mixed array_rand( array $input [, int $num_req ] );
例:
<?php
$x=["张飞","关羽","刘备","子龙","阿亮","小乔"];
$y=array_rand($x,3);
foreach($y as $i){echo $x[$i]."<br>";
}
?>
结果图:
array_reverse()函数:
array_reverse()函数的作用是返回一个元素顺序相反的数组。
其声明方式如下:
array array_reverse( array $array [, bool $preserve_keys ] );
array_reverse()接收数组$array作为输入并返回一个元素为相反顺序的新数组,如果$preserve_keys为 true,则保留原来的键名。
php数组(数组的定义、使用、删除数组、数组操作符、数组排序、数组元素查找、数组的常用函数)相关推荐
- Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找
ylbtech-Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找 1.返回顶部 1. Java 实例 - 数组排序及元素查找 Java 实例 以下实例演示 ...
- php 查找数组相同元素,查找数组中重复的元素
本文收集整理关于查找数组中重复的元素的相关议题,使用内容导航快速到达. 内容导航: Q1:在c语言中输入数组两个数组,查找重复元素并输出怎么写啊 可以一次读入N个数据.可以考虑以回车结束读入的一组. ...
- Java数组概述和定义
1.数组概述和定义格式说明 为什么要有数组(容器): 为了存储同种数据类型的多个值 数组概念: 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引 ...
- JavaScript 数组排序及查找数组中最大值最小值方法
JavaScript 数组排序方法及查找最大值最小值方法 1. sort()方法排序 1.1 方法介绍 1.2 语法:arr.sort([compareFunction]) 1.3 参数说明 1.4 ...
- java set中元素是数组_将HashSet中的元素转换为Java中的数组
首先,创建一个HashSet及其元素-HashSet hs = new HashSet(); //将元素添加到哈希集 hs.add("B"); hs.add("A&quo ...
- 7. awk数组,定义数组,判断元素是否存在,非数字下标,删除元素,查询数组
文章目录 前言 定义数组 元素是否存在 非数字下标 删除元素 查询数组 前言 本小节会详细介绍awk当中的数组 定义数组 在awk中可以直接为数组中的元素赋值即可,示例.awk中数组的下标默认是从1开 ...
- LeetCode简单题之删除一个元素使数组严格递增
题目 给你一个下标从 0 开始的整数数组 nums ,如果 恰好 删除 一个 元素后,数组 严格递增 ,那么请你返回 true ,否则返回 false .如果数组本身已经是严格递增的,请你也返回 tr ...
- js array 删除指定元素_数组--学习笔记(数据结构数组 /js数组)
学习目标: 了解什么是数组: 数组如何访问内存地址(一维,二维): 什么是数组 是由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储.利用元素的索引可以计算出该元素对应的存储地址. 最简 ...
- 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有
1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /**** ...
最新文章
- 大道至简第一章观后感(伪代码)
- Django 2.0 学习(20):Django 中间件详解
- ESL:我们如何使用首云混合云产品实现提效降本
- 一个可编辑与新增博客园文章的 Python 脚本
- matlab工作空间,变量的保存和载入
- 基于随机优化算法的特征选择
- GB2312-80 汉字机内码
- JS match() 方法 使用
- 怎么下载高清无水印的视频号作品?视频号下载要用什么工具?1分钟解决微信视频号下载
- 小程序源码:全新超火的微信小说小程序源码-自带采集带安装教程-多玩法安装简单
- 原生汇率计算器系统源代码
- html标签验证步骤,html标签验证视频教程
- xshell 7 免费版安装
- 即插即涨2-3%!AC-FPN:用于目标检测的注意力引导上下文的特征金字塔网络
- 理解Play框架线程池
- Java+Jsp+MySql实现图书管理系统_图书管理系统代码
- 安超OS面世:华云数据的雄心与耐心
- css flex布局 —— 容器属性 flex-wrap
- POJO/DTO/DO/EO/VO/BO/PO/AO的含义和使用
- K-Lite Codec Pack.rar万能播放器