详解PHP中数组函数的知识点
作者:不要叫我阿哥 发布时间:2023-05-29 10:59:11
概念
关键字:array,数据的组合(多个)存储到一个指定的容器中,用变量指向该容器,然后可以通过变量一次性得到该容器中的所有数据.
数组定义语法
1.使用array关键字(最常用)
$变量=array(元素1,元素2,元素3);
2.可以使用中括号来包裹数据
$变量=[元素1,元素2...];
3.隐形定义数组:给变量增加一个中括号,系统自动变成数组
$变量[]=值1;
$变量[下标]=值//中括号里面的内容称之为下标key,该下标可以是字母(单词)或者数字,与变量命名的规则相似
如下:
1.
<?php
$arr1=array('1',2,'hello');
var_dump($arr1);
?>
2.
<?php
$arr1=['1',2,'hello'];
var_dump($arr1);
?>
3.
<?php
$arr3[]=1;
$arr3[10]=100;
$arr3[]='1';
$arr3['key']='key';
var_dump($arr3);
?>
默认下标是从当前前面最大的开始(自动)
数组元素的顺序以放入顺序为准备,跟下标无关
多维数组
1.二维数组
数组中所有的元素都是一维数组
<?php
$info=array(
array('name'=>'jim','age'=>30),
array('name'=>'tom','age'=>28),
array('name'=>'lily','age'=>20)
);
echo'<pre>';
print_r($info);
?>
2.多维数组
在第二维的数组元素中可以继续是数组
3.异形数组
数组中元素不规则,又基本变量也有数组
数组遍历
使数组中所有的数据依次输出出来,使用一些简化的规则来实现自动获取下标以及输出数组元素
<?php
$arr=array(0=>array('name'=>'Tom'),1=>array('name'=>'jam'));//二维数组
//访问一维元素:$arr[一维下标]
$arr[0];
//访问二位元素:$arr[一维下标][二维下标]
$arr[1]['name'];
?>
foreach遍历语法
foreach($数组变量 as[$下标=>]$值){
//通过$下标访问元素的下标,通过$值访问元素的值
}
通常:如果是关联数组(字母下标),就需要下标,如果是数字下标就直接访问值
<?php
$arr=array(1,2,3,4,5,6,7,8,9);
foreach($arr as $v){
//$v随意命名
echo $v,'<br/>';
}
?>
如想获取下标:
<?php
$arr=array(1,2,3,4,5,6,7,8,9,10);
foreach($arr as $k => $v){
//$v随意命名
echo 'key:',$k,'==value:',$v,'<br/>';
}
?>
foreach遍历的原理:本质是数组的内部有一颗指针,默认指向数组元素的第一个元素,foreach就是利用指针去获取数据,同时移动指针
步骤:
1.foreach会重置指针:让指针指向第一个元素
2.进入foreach循环:通过指针取得当前第一个元素,然后将下标取出放到对应的下标遍历k中,将值取出来放到对应的值变量 $v中,然后指针下移
3.进入循环内部(循环体),开始执行
4.重复2和3,直到在2的时候遇到执政娶不到内容(指针指向数组最后)
for循环遍历数组
1.获取数组长度:count(数组)得到数组的长度
2.要求数组元素的下标是规律的数字
<?php
$arr=array(1,2,3,4,5,6,7,10);
for($i=0;$i<count($arr);$i++)
echo 'key is:',$i,'and value is:',$arr[$i],'<br/>';
?>
数组的排序函数
对数组元素进行排序,都是按照ASCLL码进行比较,所以可进行英文比较(这里一组一个例子)
一:sort():顺序排序(下标重排)
rsort():逆序排序
<?php
$arr=array(3,1,5,2,0);
echo '<pre>';
sort($arr);//此后只需改变函数关键字即可进行各种排序
print_r($arr);
?>
二:asort():顺序排序(下标保留)
arsort():逆序排序
三:ksort():顺序排序:按照键名(下标)
krsort():逆序排序
四:shuffle():随机打乱数组元素,数组下标重排
来源:https://blog.csdn.net/m0_73770225/article/details/127930342
猜你喜欢
- 译者按:我们时常能看到不同JavaScript库/框架之间的各种比较,但这次 YUI3 架构师和 jQuery 之父的直接对话却非常难得,也
- 不可否认,阿里巴巴走得越来越快也越来越好。技术的成熟让很多B2B B2C网站都在跟风学习它们。在这里我就来说一说它的搜索效果吧。如图所示:&
- 在seclists中看到一个很惊人的thread:http://seclists.org/oss-sec/2012/q2/493MySQL爆
- 找到一句可以获得当前最新ID的语句,如下:conn.execute("insert into member (user,code)
- 对于网页制作者来说,最烦琐的事情可能就是给页面中的图片或文字加链接了。假如页面内容很多的话,那么所做的
- 我用FSO生成了unicode的文件,但这不是我想要的。FSO可以生成utf-8格式编码的html文件吗?用什么办法才能生成?FSO的编码问
- 打过了趟深圳回来后,已经快半个月,在广州购书中心逛了下,发现2本前端书《重构HTML-改善WEB应用的设计》、《CSS3 实战》,看了一半《
- 垃圾评论,垃圾留言,人见人憎,用了验证码,效果也好不到哪里去,还影响用户体验。有的网站甚至不惜牺牲用户体验,而构造强悍的惨不忍睹的超级验证码
- 可用下列代码实现:<% set conn=server.creatobject("ADODB
- 今天做项目时,有一个这样的需求,需要动态删除的Tab,比如:可以删除某一个,可以删除多个。每一个Tab对应一个iframe。本来我的代码是这
- 大家都知道,Dreamweaver是是一款专业的网页设计工具,提供了许多方便、实用的功能,使得以前许多网页效果的实现从繁琐的代码
- 数据库优化是一项很复杂的工作,因为这最终需要对系统优化的很好理解才行。尽管对系统或应用系统的了解不多的情况下优化效果还不错,但是如果想优化的
- 农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于WindowsNT4.0平台,采用客户/服务器模式,以Mic
- 本游戏程序实现的功能为本地二人对弈中国象棋,实现语言为javascript+VML,在windows 2000 pro+IE 6sp1的环境
- 就算我们每天在叫嚷着创新经济,设计救国,我们在生活中也无处不在的看到各种设计庸俗、制作粗劣的海报、店面、户外广告、大胸美女和肌肉 * 交相辉映
- 相信认真做过网页设计(Web Design),或者关注过页面设计的同行都对“空格”不陌生。“空格”属于一类细节,很容易被忽略,但又比较影响效
- 文章主要描述的是SQL Server数据库和Oracle数据库行转列的一种比较典型操作方法,对于有些业务来说,数据在表中的存储与其最终的Gr
- PHP中的MYSQL常用函数1、mysql_connect()-建立数据库连接格式:resource mysql_connect([stri
- <% Rem Rem ## 在线升级类声明 Class Cls_oUpdate
- 毫无疑问,JavaScript 是一种非常灵活的脚本语言,有时候它像一只难以驯服的野马——你受益于它的灵活性的同时,也要时刻提防它变得失去控