《PHP和MySQL Web开发》阅读总结—3

前言

本篇文章简要叙述了PHP中数组的使用,主要包括数组(数字索引数组,关联数组,多维数组)的创建,访问以及数组的一些其他常用函数。

数组的分类

在C语言中常见的数组叫做数字索引数组,PHP中还有关联数组,也就是说数组的索引可以是一个字符串,这样更有利于表现数组中元素值的意义。
如:

$person = array();
$person['name'] = 'Tom';
$person['age'] = 18;

当数组的元素值还是数组时,就构成了多维数组

不过还是要着重注意PHP中数字索引数组的特点:

1.数组元素值可以混搭,也就是数组本身没有一个确定的数据类型。

2.数组可以不按照数字索引顺序赋值,但是求数字大小时是其真实大小而非最高索引加一。

数组的创建

数字索引数组的创建

$example = array('1','Tom',2);

当然除了初始化还有其他创建数组的方法,比如:

$example = array();
$example[0] = '1';
$example[1] = 'Tom';
$example[2] = 2;

关联数组的创建

$person = array('name'=>'Tom','age'=>18);

也可以使用赋值的方式创建该关联数组:

$person = array();
$person['name'] = 'Tom';
$person['age'] = 18; 

多维数组的创建

这个也没有什么好说的,知道了上面两种数组的创建后多维数组的创建也很简单了。

$multi = array( array(1,2,3),
                array(2,3,4),
                array('a','b'));

数组的访问

我将从访问单个数组元素与数组遍历两个方面来记录数组的访问方法。

访问单个数组元素

基本的访问方式

所谓基本的访问方式,即直接通过索引进行访问,此处不再细说。

借助数组指针进行访问

在PHP数组中有一个内置的指针指向当前元素,可以借助这个指针进行访问。

如下为对该指针进行控制的几个函数。

  • each():返回以当前指针所指键值对为值的数组,至于键是什么,自行var_dump查看;同时将当前指针移至后一个有效位置。若当前指针在最后一个有效位置后面,返回false。
  • current():返回当前指针所指键值对的值,不移动指针。
  • reset():重新将数组指针置于头部。
  • end():将数组指针置于尾部。
  • next():先将指针移至下一有效位置,再返回其值。若当前位置已经是最后的有效位置,返回false。
  • pos():current()的别名。
  • prev():和next()类似但是是相反的,它向前移动一个有效位置并返回其值,若前面无更多有效位置返回false。

注:

  • each()返回数组,而current/pos,next,prev返回值。
  • 我所说的下一个有效位置是指下一个被赋予有效值的位置,并不一定就是下一个紧邻的位置,因为PHP中允许间隔地对数组赋值。
  • 上述函数对数字索引数组和关联数组均有效,只是数字索引数组的键始终是数字,而关联数组的可以是数字或字符(串)。

对数组的遍历访问

理解了对单个数组元素的访问,遍历访问就容易理解了。

对数字索引数组的遍历访问

有如下几种常用的方式:

$arr =  array('a','b','1');
//type 1
for($i = 0;$i < count($arr);$i++){
    echo $arr[$i].' ';
}
reset($arr);
//type 2
foreach($arr as $currrent){
    echo $current.' ';
}
reset($arr);
//type 3
while($ele = each($arr)){
    echo $ele['value'].' ';
}
对关联数组的遍历访问

通常有两种方式:

$arr = array('name'=>'Tom','age'=>18);
//type 1
foreach($arr as $key => $value){
    echo $key.' '.$value.'</br>';
}
reset($arr);
//type 2
while($ele = each($arr)){
    echo $ele['key'].' '.$ele['value'].'</br>';
}

数组的排序

对一维数组的排序

首先说对一维数字索引数组的排序。使用sort函数即可。

bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

第一个参数为要排序的数组,第二个为对排序行为进行控制的可选参数。

该函数将数组按照从小到大的顺序排序。

再说关联数组的排序,有两种方式,按照键排序和按照值排序,分别为ksort与asort。

bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

上述均为按照从小到大的排序,使用rsort,arsort,krsort可以实现反向的由大到小的排序。

对多维数组的排序

对多维数组进行排序时,使用usort函数进行操作。

bool usort ( array &$array , callable $value_compare_func )

其中第一个参数为要排序的多维数组,第二个参数为排序时的回调函数。

该回调函数有两个值,假设分别为$var1,$var2,这两个值即为进行大小判断时传入的两个数组元素(也为数组)。若该回调函数的返回值为0,则两数组大小相等;若小于0,则左($var1)小右大;若大于0,则左大右小。

将数组重新排序

  • 使用shuffle函数可将当前数组的顺序随意打乱。
  • 使用array_reverse函数可将数组顺序反转。(注意:该函数返回一个新数组,不影响原数组。)

其他常用的数组函数

  • array_push:将新元素添加到数组末尾。
  • array_pop:将数组末尾元素删除并返回。
  • range:在一定范围内创建一个数组。
  • array_walk:对数组中每一项执行某一操作。
  • count/sizeof:计算数组大小。
  • array_count_values:统计每一个数组元素的频率。
  • extract:将数组中的键值对转换为标量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一篇 使用PHP 第1章 PHP快速入门教程 1.1 开始之前:了解PHP 1.2 创建一个示例应用:Bob汽车零部件商店 1.2.1 创建订单表单 1.2.2 表单处理 1.3 在HTML中嵌入PHP 1.3.1 使用PHP标记 1.3.2 PHP语句 1.3.3 空格 1.3.4 注释 1.4 添加动态内容 1.4.1 调用函数 1.4.2 使用date()函数 1.5 访问表单变量 1.5.1 简短、中等以及长风格的表单变量 1.5.2 字符串的连接 1.5.3 变量和文本 1.6 理解标识符 1.7 检查变量类型 1.7.1 PHP的数据类型 1.7.2 类型强度 1.7.3 类型转换 1.7.4 可变变量 1.8 声明和使用常量 1.9 理解变量的作用域 1.10 使用操作符 1.10.1 算术操作符 1.10.2 字符串操作符 1.10.3 赋值操作符 1.10.4 比较操作符 1.10.5 逻辑操作符 1.10.6 位操作符 1.10.7 其他操作符 1.11 计算表单总金额 1.12 理解操作符的优先级和结合性: 1.13 使用可变函数 1.13.1 测试和设置变量类型 1.13.2 测试变量状态 1.13.3 变量的重解释 1.14 根据条件进行决策 1.14.1 if语句 1.14.2 代码块 1.14.3 else语句 1.14.4 elseif语句 1.14.5 switch语句 1.14.6 比较不同的条件 1.15 通过迭代实现重复动作 1.15.1 while循环 1.15.2 for和foreach循环 1.15.3 do...while循环 1.16 从控制结构或脚本中跳出 1.17 使用可替换的控制结构语法 1.18 使用declare 1.19 下一章 第2章 数据的存储与检索 2.1 保存数据以便后期使用 2.2 存储和检索Bob的订单 2.3 文件处理 2.4 打开文件 2.4.1 选择文件模式 2.4.2 使用fopen()打开文件 2.4.3 通过FTP或HTTP打开文件 2.4.4 解决打开文件时可能遇到的问题 2.5 写文件 2.5.1 fwrite()的参数 2.5.2 文件格式 2.6 关闭文件 2.7 读文件 2.7.1 以只读模式打开文件:fopen() 2.7.2 知道何时读完文件:feof() 2.7.3 每次读取一行数据:fgets()、fgetss()和fgetcsv() 2.7.4 读取整个文件:readfile()、fpassthru()和file() 2.7.5 读取一个字符:fgetc() 2.7.6 读取任意长度:fread() 2.8 使用其他有用的文件函数 2.8.1 查看文件是否存在:file_exists() 2.8.2 确定文件大小:filesize() 2.8.3 删除一个文件:unlink() 2.8.4 在文件中定位:rewind()、fseek()和ftell() 2.9 文件锁定 2.10 更好的方式:数据库管理系统 2.10.1 使用普通文件的几个问题 2.10.2 RDBMS是如何解决这些问题的 2.11 进一步学习 2.12 下一章 第3章 使用数组 3.1 什么是数组 3.2 数字索引数组 3.2.1 数字索引数组的初始化 3.2.2 访问数组的内容 3.2.3 使用循环访问数组 3.3 使用不同索引的数组 3.3.1 初始化相关数组 3.3.2 访问数组元素 3.3.3 使用循环语句 3.4 数组操作符 3.5 多维数组 3.6 数组排序 3.6.1 使用sort()函数 3.6.2 使用asort()函数和ksort()函数对相关数组排序 3.6.3 反向排序 3.7 多维数组的排序 3.7.1 用户定义排序 3.7.2 反向用户排序 3.8 对数组进行重新排序 3.8.1 使用shuffle()函数 3.8.2 使用array_reverse()函数 3.9 从文件载入数组 3.10 执行其他的数组操作 3.10.1 在数组中浏览:each()、current()、reset()、end()、next()、pos()和prev() 3.10.2 对数组的每一个元素应用任何函数:array_walk() 3.10.3 统计数组元素个数:count()、sizeof()和array_count_values() 3.10.4 将数组转换成标量变量:extract() 3.11 进一步学习 3.12 下一章 第4章 字符串操作与正则表达式 4.1 创建一个示例应用程序:智能表单邮件 4.2 字符串的格式化 4.2.1 字符串的整理:chop()、ltrim()和trim() 4.2.2 格式化字符串以便显示 4.2.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值