PHP数组(1)

来源:互联网 发布:moxa串口调试 linux 编辑:程序博客网 时间:2024/05/15 13:27
1、创建数组
在编程语言中,数值和字符串被称为标量变量,一个标量变量只能表示一个单独的数值或字符串。比如,$ydtx=“移动通信”中的变量$ydtx就是一个标量变量,而我们在实际使用中如何用一个变量来表示出多个数值或字符串呢?比如,如何表示“通信基础”、“通信设备”、“测试优化”、“3G”、“LTE”等诸多字符串呢?这时我们就需要用到数组,数组虽然复杂却非常有用,它能够让一个变量承载更多的信息。创建数组的方法是使用array()函数:
$ydtx = array (
1 => '通信基础',
2 => '通信设备',
3 => '测试优化',
4 => '3G',
5 => 'LTE'
);
一个数组中必须包含键(索引)和值,键和值组成一个元素,所以数组与标量变量的不同之处在于数组拥有多个元素。键由数值或字符串组成,比如上面的1、2、3、4、5就是用数字表示的键(索引),“通信基础”、“通信设备”、“测试优化”、“3G”、“LTE”等就是这些键分别对应的值。键和值就构成数组的一个元素。print_r ()函数可以输出数组。要输出上面的数组可以这样书写(为了让输出结果的结构更清晰,可以使用<pre></pre>标签):
<pre>
<?php
$ydtx = array (
1 => '通信基础',
2 => '通信设备',
3 => '测试优化',
4 => '3G',
5 => 'LTE'
);
print_r ($ydtx);
?>
</pre>

输出结果参见图1:


图1

2、索引数组与关联数组
数组中的键为数值的数组被称为索引数组,键为字符串的数组被称为关联数组。关联数组在其他编程语言中被称为散列表(hash)。前面提到的数组$ydtx就是索引数组(因为键是用数值来表示的):
$ydtx = array (
1 => '通信基础',
2 => '通信设备',
3 => '测试优化',
4 => '3G',
5 => 'LTE'
);
有时我们为了让数组中的值更有意义就需要将值对应的键用字符串来表示,比如下面代码中的键就是用更有意义的字符串来描述“通信基础”这一课程中各章的名称,这类数组就是关联数组:
$chapter = array (
'第一章' => '通信系统概述',
'第二章' => '通信协议',
'第三章' => '传输技术',
'第四章' => '调制方式'
);
下面是输出以上两种类型数组的代码,这次我们用var_dump()函数来输出数组,var_dump()函数比print_r()函数能够输出更详细的数组信息(能够显示数组中的元素数量以及每个字符串值的长度):
<pre>
<?php
$ydtx = array (
1 => '通信基础',
2 => '通信设备',
3 => '测试优化',
4 => '3G',
5 => 'LTE'
);
var_dump ($ydtx);
$chapter = array (
'第一章' => '通信系统概述',
'第二章' => '通信协议',
'第三章' => '传输技术',
'第四章' => '调制方式'
);
var_dump ($chapter);
?>
</pre>
以上代码的输出结果参见图2:

图2

3、向数组添加元素
直接向数组添加元素需要非常小心,给大家总结一下正确的添加方法:
(1)向索引数组添加元素
比如已有索引数组:
$ydtx = array (
1 => '通信基础',
2 => '通信设备',
3 => '测试优化',
4 => '3G',
5 => 'LTE'
);
若要向这个数组添加“室内分布系统”,代码如下:
$ydtx[6] = '室内分布系统';

$ydtx[ ] = '室内分布系统';
注:如果键都是数值、变量或者常量,那么不用将之用引号引用。
对于索引数组,方括号内如未填写数值,那么“室内分布系统”就会按顺序添加到最后,如图3所示:

图3

(2)向关联数组添加元素
比如下面这个数组:
$chapter = array (
'第一章' => '移动通信发展史',
'第二章' => '通信系统概述’,
'第三章' => '通信协议',
'第四章' => '传输技术'
);
若要向这个数组添加“调制方式”,代码如下:
$chapter['第五章'] = '调制方式';
和索引数组不同,向关联数组添加元素时必须要指定键,否则添加的内容会和数组中已有的键和值进行奇怪的组合。
总结:
无论向索引数组还是向关联数组添加元素时一定要使用中括号。如没有中括号将引发错误,比如使用以下代码会引发错误:
$ydtx = ‘室内分布系统’;
用上面这行代码添加数组的结果是添加的值将替换整个已有的数组,只会留下一个字符串或者数值。

待续……

原创粉丝点击