什么是数组

数组是一种数据类型,在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数组(数组的定义、使用、删除数组、数组操作符、数组排序、数组元素查找、数组的常用函数)相关推荐

  1. Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找

    ylbtech-Java-Runoob-高级教程-实例-数组:01. Java 实例 – 数组排序及元素查找 1.返回顶部 1. Java 实例 - 数组排序及元素查找  Java 实例 以下实例演示 ...

  2. php 查找数组相同元素,查找数组中重复的元素

    本文收集整理关于查找数组中重复的元素的相关议题,使用内容导航快速到达. 内容导航: Q1:在c语言中输入数组两个数组,查找重复元素并输出怎么写啊 可以一次读入N个数据.可以考虑以回车结束读入的一组. ...

  3. Java数组概述和定义

    1.数组概述和定义格式说明 为什么要有数组(容器): 为了存储同种数据类型的多个值 数组概念: 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引 ...

  4. JavaScript 数组排序及查找数组中最大值最小值方法

    JavaScript 数组排序方法及查找最大值最小值方法 1. sort()方法排序 1.1 方法介绍 1.2 语法:arr.sort([compareFunction]) 1.3 参数说明 1.4 ...

  5. java set中元素是数组_将HashSet中的元素转换为Java中的数组

    首先,创建一个HashSet及其元素-HashSet hs = new HashSet(); //将元素添加到哈希集 hs.add("B"); hs.add("A&quo ...

  6. 7. awk数组,定义数组,判断元素是否存在,非数字下标,删除元素,查询数组

    文章目录 前言 定义数组 元素是否存在 非数字下标 删除元素 查询数组 前言 本小节会详细介绍awk当中的数组 定义数组 在awk中可以直接为数组中的元素赋值即可,示例.awk中数组的下标默认是从1开 ...

  7. LeetCode简单题之删除一个元素使数组严格递增

    题目 给你一个下标从 0 开始的整数数组 nums ,如果 恰好 删除 一个 元素后,数组 严格递增 ,那么请你返回 true ,否则返回 false .如果数组本身已经是严格递增的,请你也返回 tr ...

  8. js array 删除指定元素_数组--学习笔记(数据结构数组 /js数组)

    学习目标: 了解什么是数组: 数组如何访问内存地址(一维,二维): 什么是数组 是由相同类型的元素的集合所组成的数据结构,分配一块连续的内存来存储.利用元素的索引可以计算出该元素对应的存储地址. 最简 ...

  9. 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

     1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /**** ...

最新文章

  1. 大道至简第一章观后感(伪代码)
  2. Django 2.0 学习(20):Django 中间件详解
  3. ESL:我们如何使用首云混合云产品实现提效降本
  4. 一个可编辑与新增博客园文章的 Python 脚本
  5. matlab工作空间,变量的保存和载入
  6. 基于随机优化算法的特征选择
  7. GB2312-80 汉字机内码
  8. JS match() 方法 使用
  9. 怎么下载高清无水印的视频号作品?视频号下载要用什么工具?1分钟解决微信视频号下载
  10. 小程序源码:全新超火的微信小说小程序源码-自带采集带安装教程-多玩法安装简单
  11. 原生汇率计算器系统源代码
  12. html标签验证步骤,html标签验证视频教程
  13. xshell 7 免费版安装
  14. 即插即涨2-3%!AC-FPN:用于目标检测的注意力引导上下文的特征金字塔网络
  15. 理解Play框架线程池
  16. Java+Jsp+MySql实现图书管理系统_图书管理系统代码
  17. 安超OS面世:华云数据的雄心与耐心
  18. css flex布局 —— 容器属性 flex-wrap
  19. POJO/DTO/DO/EO/VO/BO/PO/AO的含义和使用
  20. K-Lite Codec Pack.rar万能播放器

热门文章

  1. 机器学习从入门到创业手记-数据分析实战
  2. 三子棋游戏(人机对战)
  3. zabbix 安装 mysql_基于MySQL的zabbix安装及配置
  4. 个人对于OO的一些理解
  5. OO Design Principles(OO设计原则): SOLID
  6. 北大90后数学天才韦东奕又火上热搜,被曝一晚上解决博士团队4个月难题
  7. opencv学习(四十三)之图像的矩moments()
  8. 淘宝小程序扫码进入参数
  9. Ubantu 安装搜狗输入法
  10. 阿里员工吐槽:应届生工资太猛,被倒挂,后悔接阿里侮辱性offer