-
PHP数组的定义与销毁
在php中定义数据我们最常用的就是array()来实现了,当然如果你不知道数组长度可以如array[]这样来定义未知数据长度了,如果要清空数据我们可以直unset(array[key])或直接复值空.
数据定义实例代码如下:
- ……
- $array = array('one','two','three');
- var_dump($array);
- ……
在本代码片段的第一行,定义了一个一维数组$array,第二行的时候我们格式化输出了这个数组,结果是这样的:
实例代码如下:
- array(3) {
- [0]=>
- string(3) "one"
- [1]=>
- string(3) "two"
- [2]=>
- string(5) "three"
- }
现在兄弟解释一下这个输出结果,首先这个数组的输出结果的第一行,array(3)告诉我们这是个有三个元素的数组,首先0号元素是一个长度为3的字符串(string(3))…
篇幅关系剩下两个就不说了吧,吼吼……,这说明什么呢?这说明在PHP中如果我们不为数组指定下标的话,那么他就自己自作主张的从零开始给我们弄一个下标出来——也就是PHP数组中的键名;再看看下边的例子:
实例代码如下:
- ……
- $array = array('one',”hello”=>'two','three');
- var_dump($array);
……这一次我们定义数组的时候,为第二个元素指定了下标(从此以后,在本文中就叫做键名了,下标有点含糊不清!),第二个元素指定了键名(hello),咱们再看看输出结果:
实例代码如下:
- array(3) {
- [0]=>
- string(3) "one"
- ["hello"]=>
- string(3) "two"
- [1]=>
- string(5) "three"
- }
我想你也像我一样看到了一个很智能的现象,第一个元素的键名还是0——这个我们可以理解,因为我们没有指定,而PHP数组必须要有一个键名,PHP就自作主张从零开始创立了一个键名;第二个元素的时候,我们指定了键名,PHP就尊重我们的意见用了这个键名;复杂的事情在第三个元素,
第三个元素,看起来也很简单,我们没有指定键名,PHP自动的把最大整数键名加上1,作为了键名.但是大家想过没有,如果我们把第一个元素的键名修改为“-5”,第二个元素键名不变,结果会是什么呢?我们拭目以待:
实例代码如下:
- ……
- $array = array(-5=>'one',"hello"=>'two','three');
- var_dump($array);
- ……
如果你想当然的认为,第三个元素的键名应该是-4,那么我告诉你在PHP4.3.0之前这个想法是对的,但是之后就错了,现在也就是PHP4.3.0之后的版本你将看到如下结果:
实例代码如下:
- array(3) {
- [-5]=>
- string(3) "one"
- ["hello"]=>
- string(3) "two"
- [0]=>
- string(5) "three"
- }
是的第三个元素是从0开始的,也就是不管你的负数有多小,下一个元素要是让PHP来定义键名的话,那么他就是从0开始——记住这个地方说的是,在现有的键名中如果最大的依然是个负数,不管负数有多小,PHP也是从零开始下一个键名.
PHP数组的销毁很简单,像销毁其他变量一样.
销毁整个数组:unset($array)
销毁数组中的一个元素:unset($array[-5])