PHP整理笔记四

一.什么是数组

传统上把数组(array)定义为一组有某种共同特性的元素,包括相似性和类型。每个元素由一个特殊的标识符来区分,称之为键(key);而每个键对应一个值(value)。


李彦宏


周鸿祎


马云


俞敏洪


李开复


吴祁

依照上表,我们创建一个数组。

第一种:

$userNames=array(‘李彦宏‘,‘周鸿祎‘,‘马云‘,‘俞敏洪‘,‘李开复‘,‘吴祁‘);

这是索引数组初始化:

数字索引的初始值是从0开始计算的:

userNames[0]---userNames[5],代表这6个人的名字。

第二种:

通过range()函数自动创建一个数组

$numbers=range(1,10)    $letters=range(‘a‘,‘z‘)

可以加第三个参数$numbers=range(1,10,2),第三个参数表示步长

访问数组的内容:

要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。

$numbers[0]、$numbers[1]、$numbers[2];等。

改变数组的值:

$numbers[0]="Lee";

使用循环访问数组

由于数组使用有序的数字作为索引,所以使用一个for循环就可以很容易地显示数组的内容:

for ($i=0;$i<10;$i++) {

echo $numbers[$i];

}

也可以使用foreach循环来遍历数组:

foreach ($numbers as $value) {

echo $value;

}

测试是否为数组变量:is_array();

print_r 函数:打印关于变量的易于理解的信息

 

二.自定义键数组

 

初始化相关数组

$ages=array(‘吴祁‘=>19,‘李炎恢‘=>27,‘胡心鹏‘=>23);

访问数组元素

$ages["吴祁"];

$ages["李炎恢"];

$ages["胡心鹏"];

追加数组:首先,创建只有一个元素的数组,然后追加两个元素。

$ages=array("吴祁"=>19);

$ages["李炎恢"]=27;

$ages["胡心鹏"]=23;

直接添加数组:无需创建,直接添加,添加第一个元素自动建立数组。

$ages["吴祁"]=19;

$ages["李炎恢"]=27;

$ages["胡心鹏"]=23;

使用循环语句:因为相关数组的索引不是数字,因此无法使用for循环语句中使用一个简单的计数器对数组进行操作。但是可以使用foreach循环或list()和each()结构。

foreach ($ages as $key=>$value) {

echo $key."=>".$value."<br/>";

}

使用each()结构打印$ages数组的内容:each()函数返回数组的当前元素,并将下一个元素作为当前元素。

while (!!$element=each($ages)) {

echo $element["key"];

echo "=>";

echo $element["value"];

echo "<br/>";

}

使用list()函数,可以用来将一个数组分解为一系列的值。可以按照如下方式将函数each()返回的两个值分开:

list($name,$age)=each($ages);

当使用each()函数时,数组将记录当前元素。如果希望在相同的脚本中两次使用该数组,就必须使用函数reset()将当前元素重新设置到数组开始处。

reset($prices);

确定唯一的数组元素:array_unique();它会删除掉里面相同值的元素。

置换数组键和值:array_flip();它会对调数组中的key和value;

 

三.数组里的数组

数组不一定就是一个关键字和值的简单列表----数组中的每个位置用来保存另一个数组。使用这种方法,可以创建一个二维数组。可以把二维数组当成一个矩阵,或者是一个具有宽度和高度或者行和列的网格。

二维表


产品名


数量


价格


苹果


6


28.8


猪肉


2


32.1


饼干


3


45.3

$products=array(

array("苹果",6,28.8),

array("猪肉",2,32.1),

array("饼干",3,45.3)

);

显示这个二维数组:

echo "|".$products[0][0]."|".$products[0][1]."|".$products[0][2]."|<br />";

echo "|".$products[1][0]."|".$products[1][1]."|".$products[1][2]."|<br />";

echo "|".$products[2][0]."|".$products[2][1]."|".$products[2][2]."|<br/>";

此外,还可以使用双重for循环来实现同样的效果:

for ($row=0;$row<3;$row++) {

for ($column=0;$column<3;$column++) {

echo "|".$products[$row][$column];

}

echo "|<br/>";

}

使用列明的二维数组:

$products=array(

array("产品名"=>"苹果","数量"=>6,"价格"=>28.8),

array("产品名"=>"猪肉","数量"=>2,"价格"=>32.1),

array("产品名"=>"饼干","数量"=>3,"价格"=>45.3)

);

显示这个二维数组:

第一种方式:

for ($row=0;$row<3;$row++) {

echo "|".$products[$row]["产品名"]."|".

$products[$row]["数量"]."|".$products[$row]["价格"]."|<br/>";

}

第二种方式:

for ($row=0;$row<3;$row++) {

while (!!list($key, $value)=each($products[$row])) {

echo "|".$value;

}

echo "|<br/>";

}

 

四.数组的排序

对保存在数组中的相关数据进行排序是一件非常有意义的事情。使用并且排序一个一维数组是非常简单的。

使用sort()函数将数组按字母升序进行排序。

$products=array("orange","banner","apple");

sort($products);

使用sort()函数将数字升序进行排序。

$prices=array(100,10,4,23,78);

sort($prices);

sort()函数的第二个参数是可选的。这个可选参数可以传递SORT_REGULAR(默认值)、SORT_NUMERIC或SORT_STRING。指定排序类型的功能是非常有用的。比如,当要比较可能包含有数字2和12的字符串时,从数字角度看,2要小于12,但是作为字符串,"12"却要小于"2"。

使用asort()函数和ksort()函数对相关数组排序

创建一个包括3个产品及价格的数组,然后将它们按价格的升序进行排序:

$prices=array("c"=>苹果,"a"=>猪肉,"b"=>饼干);

asort($prices);

按说明排序使用ksort()函数

ksort($prices)

反向排序:sort()、asort()和ksort()都是正向排序,当然也有相对应的反向排序.

实现反向:rsort()、arsort()和krsort()。

在一些应用程序中,可能希望按另一种方式对数组排序。函数shuffle()将数组个元素进行随机排序。函数array_reverse()给出一个原来数组的反向排序。

shuffle($pictures);

array_reverse($pictures);

array_unshift()函数将新元素添加到数组头,array_push()函数将每个新元素添加到数组的末尾。

array_shift()删除数组头第一个元素,与其相反的函数是array_pop(),删除并返回数组末尾的一个元素。

array_rand()返回数组中的一个或多个键。

 

五.数组的指针操作

在数组中浏览:each()、current()、reset()、end()、next()、pos()、prev();

调用next()或each()将使指针前移一个元素。调用each($array_name)会在指针前移一个位置之前返回当前元素。next()函数则有些不同----调用next($array_name)是将指针前移,然后再返回新的当前元素。

要反向遍历一个数组,可以使用end()和prev()函数。prev()函数和next()函数相反。它是将当前指针往回移一个位置然后再返回新的当前元素。

 

六.统计数组个数

count()和sizeof()统计数组下标的个数

array_count_values()统计数组内下标值的个数

七.将数组转换成标量变量:extract()

对于一个非数字索引数组,而该数组又有许多关键字-值对,可以使用函数extract()将它们转换成一系列的标量变量。extract()函数原型如下:

extract(array var_array,[intextract_type],[string prefix]);

函数extract()的作用是通过一个数组创建一系列的标量变量,这些变量的名称必须是数组中关键字的名称,而变量值则是数组中的值。

$array=array("key1"=>"value1","key2"=>"value2","key3"=>"value3");

extract($array);

echo $key1.$key2.$key3;

时间: 2024-11-13 12:04:29

PHP整理笔记四的相关文章

jQuery整理笔记目录

jQuery整理笔记目录 jQuery整理笔记一----jQuery开始 jQuery整理笔记二----jQuery选择器整理 jQuery整理笔记三----jQuery过滤函数 jQuery整理笔记四----jQuery操作DOM jQuery整理笔记五----jQuery事件 jQuery整理笔记六----jQuery动画 jQuery整理笔记七----几个经典表单应用 jQuery整理笔记八----jQuery的Ajax jQuery整理笔记九----功能性表格开发 jQuery整理笔记目

jQuery整理笔记文件夹

jQuery整理笔记文件夹 jQuery整理笔记一----jQuery開始 jQuery整理笔记二----jQuery选择器整理 jQuery整理笔记三----jQuery过滤函数 jQuery整理笔记四----jQuery操作DOM jQuery整理笔记五----jQuery事件 jQuery整理笔记六----jQuery动画 jQuery整理笔记七----几个经典表单应用 jQuery整理笔记八----jQuery的Ajax jQuery整理笔记九----功能性表格开发

[设计模式整理笔记 一] 基础知识

[设计模式整理笔记 一] 基础知识 [导读] [设计模式整理笔记 一] 基础知识 [设计模式整理笔记 二] 简单工厂模式(Simple Factory) [设计模式整理笔记 三] 工厂模式(Factory) [设计模式整理笔记 四] 抽象工厂模式(Abstract Factory) [设计模式整理笔记 五] 创建者模式(Builder) [设计模式整理笔记 六] 工厂模式与创建者模式总结 [设计模式整理笔记 七] 原型模式(ProtoType) [设计模式整理笔记 八] 单例模式(Singlet

代码管理工具 --- git的学习笔记四《重新整理git(1)》

1.创建版本库 mkdir  创建目录 cd  地址,到该地址下 pwd 显示当前目录 1.创建目录 $ mkdir startGit $ cd startGit $ pwd 显示当前目录 或者cd到桌面,然后再创建目录 2.初始化版本库 $ git init 初始化仓库 提示信息:Initialized empty Git repository in /Users/xingzai/Desktop/startGit/.git/ 建立一个空的git仓库在/Users/xingzai/Desktop

sk_buff整理笔记(二、操作函数)

承接上一篇:sk_buff整理笔记(一.数据结构)这一篇要讲的是内核为sk_buff结构提供的一些操作函数. 第一.首先要讲的是sk_buff中的四大指针: 四大指针分别是:head.data.tail.end:这四个指针都是指向了数据区的,数据区中存放的是协议头和数据.head和end指针是每个数据包一样的,也是有这两个指针来确定数据区的大小的.最开始的时候head.data.tail三个指针都是指向一起的,当有协议数据加进来时才更改. 再来说下包的形成,首先是应用层的数据,然后到四层加上四层

jQuery整理笔记八----jQuery的Ajax

Ajax,我一直读的是"阿贾克斯",据当时大学老师讲该读音出处是根据当年风靡欧洲的荷兰足球俱乐部阿贾克斯的名字来的,我觉得说法挺靠谱的. jQuery封装了Ajax的交互过程,用户不需要考虑XMLHttpRequest对象的兼容性问题以及使用XMLHttpRequest建立连接.发送请求.发送方式.接收方式等细节,利用jQuery定义 的几个简单方法,即可轻松实现客户端与服务端异步通信的问题,从而帮助开发人员从繁琐的技术细节中解脱出来,专心于业务层开发工作. 最初始的JavaScrip

jQuery Easy UI整理笔记目录

jQuery Easy UI整理笔记目录 ps:最近对Easy UI比较感兴趣,打算系统的学习一下,前面基础部分的东西很简单,都是参照API去写的,例子也就是随便举的,没有列举项目中的实际应用. 打算基础部分后面的知识多投入点时间,多与项目中的实际相结合一些,也尽量多想象出一些应用场景. 计划最慢每周更新一篇文章. 一.基础组件部分 1. jQuery Easy UI的使用 2. jQuery Easy UI Draggable(拖动)组件 3. jQuery Easy UI Droppable

初探swift语言的学习笔记四(类对象,函数)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! swift扩展了非常多功能和属性,有些也比較奇P.仅仅有慢慢学习,通过经验慢慢总结了. 以下将初步学习一下类的写法. 码工,最大爱好就是看码,而不是文字,太枯燥. // // computer.swift // swiftDemo // // C

Python个人学习笔记四

                                        本节主要学习python语言中网络相关知识. 一 主要文件和目录在Urllib的request.py模块下面.其中支持SSL加密方式访问. 下面我们看看其中的主要类和函数吧. 先看看源码吧. def urlopen(url, data=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, *, cafile=None, capath=None, cadefault=False):