數據定義
代碼如下 復制代碼……
$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數組中的鍵名;再看看下邊的例子:
……這一次我們定義數組的時候,為第二個元素指定了下標(從此以後,在本文中就叫做鍵名了,下標有點含糊不清!),第二個元素指定了鍵名(hello),咱們再看看輸出結果:
代碼如下 復制代碼array(3) {
[0]=>
string(3) "one"
["hello"]=>
string(3) "two"
[1]=>
string(5) "three"
}
我想你也像我一樣看到了一個很智能的現象,第一個元素的鍵名還是0——這個我們可以理解,因為我們沒有指定,而PHP數組必須要有一個鍵名,PHP就自作主張從零開始創立了一個鍵名;第二個元素的時候,我們指定了鍵名,PHP就尊重我們的意見用了這個鍵名;復雜的事情在第三個元素,
第三個元素,看起來也很簡單,我們沒有指定鍵名,PHP自動的把最大整數鍵名加上1,作為了鍵名。但是大家想過沒有,如果我們把第一個元素的鍵名修改為“-5”,第二個元素鍵名不變,結果會是什麼呢?我們拭目以待:
代碼如下 復制代碼 ……如果你想當然的認為,第三個元素的鍵名應該是-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])