热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php数组操作学习笔记_PHP教程

php数组操作学习笔记。小编今天给大家来总结php中数组操作的一些入门学习笔记了,包括了:数据创建,赋值,遍历,查找,统计,多维数组等等在php中数组各种操作
小编今天给大家来总结php中数组操作的一些入门学习笔记了,包括了:数据创建,赋值,遍历,查找,统计,多维数组等等在php中数组各种操作,有需要了解的朋友可参考。

什么是数组?

数组是一个数据的集合,相当于一个容器,可以将数据按一定的规则存到这个容器中。相当于旅馆,旅馆内有很多房间,而房间按照一定的规则编号。

数组的构成:基本结构形式如下:

$数组名 (键)= 值 数组名:是一个数组区别于另一个数组的方式,就像每个旅馆都有一个名字。
键(key):也成为指针、索引或者标识符。键代表某值在数组中存放的位置,相当于旅馆的门牌号,可以用不同方式命名。通过查询键可以找到相应的值。
值(value):值相当于房间内存放的东西。

赋值创建数组

在php中,创建数组有变量赋值和调用函数两种方法,这里先讲前者。

使用变量赋值方法很简单,直接给一个数组变量赋值即可。

实例:

代码如下

$lang[]="php";
$lang[]="html";
$lang[]="css";
echo "$lang[0]
";
echo "$lang[1]
";
echo "$lang[2]
";
?>

三个赋值语句产生的数组内容:

0=>php

1=>html

2=>css

创建数组

除了上面介绍的赋值创建数组,还有调用函数的方法创建数组。

php提供了array函数来穿件一个数组,基本结构形式如下:

array (item1,item2... ,itemn)

/* item表示数组中的元素值。array()函数创建数组时自动给元素值分配标识符,从0依次增加 */
实例:

代码如下

$student=array("Tom","Jacky","Rose");
echo $student[0] ."t";
echo $student[1] ."t";
echo $student[2];
?>

数组键名

1、键名分配

在用array()函数创建数组时,键名会自动分配到各个值。另外,我们也可以按自己的需要直接给元素分配键名。

基本结构形式:

array ( key => item )

实例1:

代码如下
$a=array(1 => "you",2 =>"are ", 5 =>"how ");
echo $a[5];
echo $a[2];
echo $a[1];
?>

2、用字符串作键名

不但可以用整数作为键名,也可以使用字符串作为键名。使用字符串作为键名的数组成为字符串索引(string-indexed)数组。

实例2:

代码如下
$a=array("php"=>"动态网页","html"=>"静态网页","css"=>"网页排版");
echo $a["php"] ."
";
echo $a["html"] ."
";
echo $a["css"];
?>

3、键名的修改

实例3:

代码如下

$arr = array("a" => "新浪",
"b"=>"网易",
"c" => "腾讯", "雅虎"
);
$arr[a] = "PHP中文社区";
$arr['e'] = "新浪";
$arr[] = "百度";
echo $arr['a'] ."
";
echo $arr['b'] ."
";
echo $arr['c'] ."
";
echo $arr['e'] ."
";
echo $arr[0] ."
";
echo $arr[1] ."
";
?>

创建多维数组

在php程序编写时,一维数组有时不能满足需求,这时就要用到多维数组。多维数组就是在一维数组的基础上再增加一个或多个细下标,用法与一维数组大致相同,只是多维数据操作更为复杂,不过功能更强大。

以二维数组为例,就像大房子里面套有小房子,表示方法为$a[0][0]。

实例:

代码如下

$a[0][0]=1;
$a[0][1]=2;
$a[0][2]=3;
$a[1][0]=4;
$a[1][1]=5;
$a[1][2]=6;
for($i=0;$i<=1;$i++){
for($j=0;$j<=2;$j++){
echo "$a[$i][$j]=" .$a[$i][$j] ."
"; /* "$"表示输出变量符号$ */
}
}
?>

输出数组

输出数组是指将数组的的所有元素数据显示在浏览器上,php怎么输出数组?常用的php输出数组函数有var_dump()和print_r()函数。

1、var_dump函数递归展开数组元素,显示数组各元素的类型、键名和元素值。

实例1:

代码如下
$a=array(0,5,array("php","html","css")); /* 创建一个嵌套的数组 */
var_dump($a);
?>

2、print_r函数值显示数组元素的键名和元素值。

实例2:

代码如下


$b=array(1,2,3);
print_r($b);
?>

测试数组


有时候我们不清楚某个变量是不是数组,可以用is_array()函数来测试判断。

基本结构形式:

is_array ( 变 量 )

检测变量是否数组,如果是则返回true,否则返回false。

实例:

代码如下

$a="apple iphone";
if(is_array($a)){
var_dump($a);
}
else echo "不是数组";
?>

foreach遍历数组


我们在运用数组时,常常要遍历数组并获得各个键或者元素值,php提供了一些专门遍历数组的函数。这里先介绍foreach遍历数组函数的用法。

结构形式:

代码如下


foreach ( array_expression as $value ) statement
/* array_expression是要遍历的数组
as作用是将数组的值赋给$value
statement是后续语句
*/
实例1:

$color=array('white' => '白色' ,
'black' => '黑色' ,
'red' => '红色' ,
'green' => '绿色',
'yellow' => '黄色');
foreach( $color as $c) echo $c ."
";
?>

通过foreach不仅可以获得元素的值也可以获得键名,结构形式:

foreach ( array_expression as $key => $value ) statement

将以上实例中第7行的代码:

代码如下

foreach( $color as $c) echo $c ."
";
改为:


foreach( $color as $key => $c) echo $key.$c ."
";


查找数组元素值

php获取数组键名可以用array_search()来实现,结构形式如下:

array_search( $needle,$haystack )
/* 参数$needle表示要查找的值 */
/* $haystack表示查找对象 */
array_search()函数返回的是键名,而不是布尔值,找不到时返回false。找到的元素如果正好是第一个元素,则返回0。而php会自动转化成false,所以需要使用”===”判断返回值。(“===”判断是否全等,详:php关系运算符)

实例:

代码如下

$s=array("a","b","c","d","e","f");
$i=array_search("a",$s); /* 查找数组是否有字符"a" */
if($i===false) /* 判断查找结果 */
echo "在数组s中找不到字符'a'";
else echo "输出数组$s的键名:" .$i; /* 输出键名 */
?>

计算数组元素个数

数组也像变量一样可以进行运算,例如需要php统计数组元素个数时,我们可以利用count()函数来计算数组中元素的个数。

结构形式:

代码如下


count ( $var,$mode )
/* $var参数$var通常是一个数组,函数返回var中的单元数目 */
/* mode是可选参数 */
实例:

$a=array("peple","man","women");
$b=count($a); /* 统计数组元素个数 */
echo $b;
?>

数组排序

php提供了一系列的数组排序函数,我们可以根据需要对数组进行排序。数组的排序主要有三种方式:

按键值排序

即按标识符ASCⅡ码值的大小排列顺序。

ksort(): 按照数组标识符顺序排列
krsort(): 按照数组标识符逆序排
实例1:

代码如下
$languages=array(
'c'=>'php',
'd'=>'asp',
'a'=>'jsp',
'b'=>'java'
);
krsort($languages);
foreach($languages as $key=>$val){
echo "$key = $val".'
';
};
?>

按元素值排序

asort(): 按照由小到大的顺序对数组排序;
rsort(): 按照由大到小的顺序对数组逆序排序。
将实例1的8-11行代码改为:

代码如下
asort($languages);
print_r($languages);
echo "
";
rsort($languages);
print_r($languages);

删除原有键名排序

sort(): 按照由小到大的顺序对数组排序;
rsort(): 按照由大到小的顺序对数组逆序排序。
将实例2的8-11行代码改为:

代码如下

sort($languages);
foreach($languages as $key=>$val){
echo "languages[$key] = $val".'
';
};

数组运算符

合并数组计算实例:

代码如下
$a=array(
'a'=>'php',
'b'=>'html',
'c'=>'css'
);
$b=array(
'a'=>'asp',
'b'=>'jsp'
);
$c=$a+$b; /* 合并数组 */
var_dump($c);
echo "
";
$c=$b+$a; /* 调换顺序合并数组 */
var_dump($c);
?>

数组的比较实例:

代码如下
$a=array('php','asp');
$b=array(1=>'asp',0=>'php');
var_dump($a==$b);
var_dump($a===$b);
?>

数组运算符
例子 名称 结果
$a + $b 联合 $a 和 $b 的联合。
$a == $b 相等 如果 $a 和 $b 具有相同的键/值对则为 TRUE
$a === $b 全等 如果 $a 和 $b 具有相同的键/值对并且顺序和类型都相同则为 TRUE
$a != $b 不等 如果 $a 不等于 $b 则为 TRUE
$a <> $b 不等 如果 $a 不等于 $b 则为 TRUE
$a !== $b 不全等 如果 $a 不全等于 $b 则为 TRUE

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/628836.htmlTechArticle小编今天给大家来总结php中数组操作的一些入门学习笔记了,包括了:数据创建,赋值,遍历,查找,统计,多维数组等等在php中数组各种操作...


推荐阅读
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 如何高效渲染JSON数据
    本文介绍了在控制器中返回JSON结果的方法,并详细说明了如何利用jQuery处理和展示这些数据,为Web开发提供了实用的技巧。 ... [详细]
  • 3DSMAX制作超现实的体育馆模型
    这篇教程是向脚本之家的朋友介绍3DSMAX制作超现实的体育馆模型方法,教程制作出来的体育馆模型非常地不错,不过教程有点难度,需要有一定基础的朋友学习,推荐到脚本之家,喜欢的朋友可 ... [详细]
  • 在项目冲刺的最后一天,团队专注于软件用户界面的细节优化,包括调整控件布局和字体设置,以确保界面的简洁性和用户友好性。 ... [详细]
  • JavaScript 页面卸载事件详解 (onunload)
    当用户从页面离开时(如关闭页面或刷新页面),会触发 onunload 事件,此时可以执行预设的脚本。需要注意的是,不同的浏览器对 onunload 事件的支持程度可能有所不同。 ... [详细]
  • 默认情况下,Git 使用 Nano 编辑器进行提交信息的编辑,但如果您更喜欢使用 Vim,可以通过简单的配置更改来实现这一变化。本文将指导您如何通过修改全局配置文件来设置 Vim 作为默认的 Git 提交编辑器。 ... [详细]
  • 探索Java 11中的ZGC垃圾收集器
    Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
  • 本文探讨了使用普通生成函数和指数生成函数解决组合与排列问题的方法,特别是在处理特定路径计数问题时的应用。文章通过详细分析和代码实现,展示了如何高效地计算在给定条件下不相邻相同元素的排列数量。 ... [详细]
  • 在Notepad++中配置Markdown语法高亮及实时预览功能
    本文详细介绍了如何在Notepad++中配置Markdown语法高亮和实时预览功能,包括必要的插件安装和设置步骤。 ... [详细]
  • 探讨如何在映射文件中处理重复的属性字段,以避免数据操作时出现错误。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 利用无代码平台实现高效业务应用开发
    随着市场环境的变化加速,全球企业都在探索更为敏捷的应用开发模式,以便快速响应新兴的商业机遇。然而,传统的软件开发方式不仅成本高昂,而且耗时较长,这往往导致IT与业务部门之间的合作障碍,进而影响项目的成功。本文将探讨如何通过无代码开发平台解决这些问题。 ... [详细]
  • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
  • 本文介绍了如何利用jQuery实现对网页上多个div元素的显示与隐藏控制,包括基本的toggle方法及更复杂的显示隐藏逻辑。 ... [详细]
  • 本文探讨了程序员这一职业的本质,认为他们是专注于问题解决的专业人士。文章深入分析了他们的日常工作状态、个人品质以及面对挑战时的态度,强调了编程不仅是一项技术活动,更是个人成长和精神修炼的过程。 ... [详细]
author-avatar
lty燕_654
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有