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])

http://www.bkjia.com/phpjc/628975.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/628975.htmltecharticle在php中定义数据我们最常用的就是array()来实现了,当然如果你不知道数组长度可以如array[]这样来定义未知数据长度了,如果要清空数据我们…

Posted in 未分类