PHP基本语法(六)—— 数组

来源:互联网 发布:安卓c语言编程软件 编辑:程序博客网 时间:2024/05/17 06:31

数组

在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量。无需很多相似的变量,你可以把数据作为元素存储在数组中。数组中的元素都有自己的 ID,因此可以方便地访问它们。

有三种数组类型:

数值数组

带有数字 ID 键的数组

关联数组

数组中的每个 ID 键关联一个值

多维数组

包含一个或多个数组的数组

一、数值数组

数值数组存储的每个元素都带有一个数字 ID 键。可以使用不同的方法来创建数值数组:

例子 1

在这个例子中,会自动分配 ID 键:

$names = array("Peter","Quagmire","Joe");

例子 2

在这个例子中,我们人工分配的 ID 键:

$names[0] = "Peter";

$names[1] = "Quagmire";

$names[2] = "Joe";

可以在脚本中使用这些 ID 键:

<?php

 

$names[0] = "Peter";

$names[1] = "Quagmire";

$names[2] = "Joe";

 

echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";

?>

 

以上代码的输出:

Quagmire and Joe are Peter's neighbors

二、关联数组

关联数组,它的每个 ID 键都关联一个值。在存储有关具体命名的值的数据时,使用数值数组不是最好的做法。通过关联数组,我们可以把值作为键,并向它们赋值。

例子 1

在本例中,我们使用一个数组把年龄分配给不同的人:

$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);

例子 2

本例与例子 1 相同,不过展示了另一种创建数组的方法:

$ages['Peter'] = "32";

$ages['Quagmire'] = "30";

$ages['Joe'] = "34";

可以在脚本中使用 ID 键:

<?php

$ages['Peter'] = "32";

$ages['Quagmire'] = "30";

$ages['Joe'] = "34";

echo "Peter is " . $ages['Peter'] . " years old.";

?>

以上脚本的输出:

Peter is 32 years old.

三、多维数组

在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组,以此类推。

例子 1

在本例中,我们创建了一个带有自动分配的 ID 键的多维数组:

$families = array

(

  "Griffin"=>array

  (

  "Peter",

  "Lois",

  "Megan"

  ),

  "Quagmire"=>array

  (

  "Glenn"

  ),

  "Brown"=>array

  (

  "Cleveland",

  "Loretta",

  "Junior"

  )

);

如果输出这个数组的话,应该类似这样:

Array

(

[Griffin] => Array

  (

  [0] => Peter

  [1] => Lois

  [2] => Megan

  )

[Quagmire] => Array

  (

  [0] => Glenn

  )

[Brown] => Array

  (

  [0] => Cleveland

  [1] => Loretta

  [2] => Junior

  )

)

 

例子 2

让我们试着显示上面的数组中的一个单一的值:

echo "Is " . $families['Griffin'][2] .

" a part of the Griffin family?";

以上代码的输出:

Is Megan a part of the Griffin family?

 

附:php数组操作函数整理

Array([key =>] value, [key =>] value, [key =>] value, [key =>] value) // key 可以是 integer 或者 string // value 可以是任何值
array_change_key_case -- 返回字符串键名全为小写或大写的数组
array_chunk -- 将一个数组分割成多个
array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_count_values -- 统计数组中所有的值出现的次数
array_diff_assoc -- 带索引检查计算数组的差集
array_diff_key -- 使用键名比较计算数组的差集
array_diff_uassoc -- 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey -- 用回调函数对键名比较计算数组的差集
array_diff -- 计算数组的差集
array_fill -- 用给定的值填充数组
array_filter -- 用回调函数过滤数组中的单元
array_flip -- 交换数组中的键和值
array_intersect_assoc -- 带索引检查计算数组的交集
array_intersect_key -- 使用键名比较计算数组的交集
array_intersect_uassoc -- 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey -- 用回调函数比较键名来计算数组的交集
array_intersect -- 计算数组的交集
array_key_exists -- 检查给定的键名或索引是否存在于数组中
array_keys -- 返回数组中所有的键名
array_map -- 将回调函数作用到给定数组的单元上
array_merge_recursive -- 递归地合并一个或多个数组
array_merge -- 合并一个或多个数组
array_multisort -- 对多个数组或多维数组进行排序
array_pad -- 用值将数组填补到指定长度
array_pop -- 将数组最后一个单元弹出(出栈)
array_product -- 计算数组中所有值的乘积
array_push -- 将一个或多个单元压入数组的末尾(入栈)
array_rand -- 从数组中随机取出一个或多个单元
array_reduce -- 用回调函数迭代地将数组简化为单一的值
array_reverse -- 返回一个单元顺序相反的数组
array_search -- 在数组中搜索给定的值,如果成功则返回相应的键名
array_shift -- 将数组开头的单元移出数组
array_slice -- 从数组中取出一段
array_splice -- 把数组中的一部分去掉并用其它值取代
array_sum -- 计算数组中所有值的和
array_udiff_assoc -- 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc -- 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff -- 用回调函数比较数据来计算数组的差集
array_uintersect_assoc -- 带索引检查计算数组的交集,用回调函数比较数据
array_uintersect_uassoc -- 带索引检查计算数组的交集,用回调函数比较数据和索引
array_uintersect -- 计算数组的交集,用回调函数比较数据
array_unique -- 移除数组中重复的值
array_unshift -- 在数组开头插入一个或多个单元
array_values -- 返回数组中所有的值
array_walk_recursive -- 对数组中的每个成员递归地应用用户函数
array_walk -- 对数组中的每个成员应用用户函数
array -- 新建一个数组
arsort -- 对数组进行逆向排序并保持索引关系
asort -- 对数组进行排序并保持索引关系
compact -- 建立一个数组,包括变量名和它们的值
count (sizeof)-- 计算数组中的单元数目或对象中的属性个数
current -- 返回数组中的当前单元
each -- 返回数组中当前的键/值对并将数组指针向前移动一步
end -- 将数组的内部指针指向最后一个单元
extract -- 从数组中将变量导入到当前的符号表
in_array -- 检查数组中是否存在某个值
key -- 从关联数组中取得键名
krsort -- 对数组按照键名逆向排序
ksort -- 对数组按照键名排序
list -- 把数组中的值赋给一些变量
natcasesort -- 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort -- 用“自然排序”算法对数组排序 next -- 将数组中的内部指针向前移动一位
pos -- current() 的别名 prev -- 将数组的内部指针倒回一位 range -- 建立一个包含指定范围单元的数组

原创粉丝点击