大多數(shù)編程語言都支持數(shù)字索引數(shù)組。在PHP中,數(shù)字索引的默認值是從0開始的,當然也可以改變它。要創(chuàng)建一個數(shù)組,可以使用如下所示的代碼:$products = array("Tires", "Oil", "Spark Plugs");以上代碼將創(chuàng)建一個名為$products的數(shù)組,它包含3個值:Tires、Oil和Spark Plugs。注意,就像echo語句一樣,array()實際上是一個語言結構,而不是一個函數(shù)。根據(jù)對數(shù)組內容的需求不同,可能不需要再像以上例子一樣對它們進行手工的初始化操作。如果所需數(shù)據(jù)保存在另一個數(shù)組中,可以使用運算符=簡單地將數(shù)組復制到另一個數(shù)組。
【示例1】如果需要將按升序排列的數(shù)字保存在一個數(shù)組中,可以使用range()函數(shù)自動創(chuàng)建這個數(shù)組。如下這行代碼將創(chuàng)建一個從1到10的數(shù)字數(shù)組:$numbers = range(1, 10);range()函數(shù)具有一個可選的第三個參數(shù),這個參數(shù)允許設定值之間的步幅。例如,如需建立一個1到10之間的奇數(shù)數(shù)組,可以使用如下代碼:$odds = range(1, 10, 2);range()函數(shù)也可以對字符進行操作,如下例所示:$letters = range("a", "z");如果信息保存在磁盤文件中,可以從這個文件直接載入到數(shù)組中。如果數(shù)組中使用的數(shù)據(jù)保存在數(shù)據(jù)庫中,可以從數(shù)據(jù)庫中直接載入數(shù)組。還可以使用不同的函數(shù)來提取數(shù)組中的一部分數(shù)據(jù),或對數(shù)組進行重新排序。要訪問一個變量的內容,可以直接使用其名稱。如果該變量是一個數(shù)組,可以使用變量名稱和關鍵字或索引的組合來訪問其內容。關鍵字或索引將指定要訪問的變量。索引在變量名稱后面用方括號括起來。
【示例2】使用$products[0]、$prod-ucts[1]、$products[2],就可以訪問數(shù)組$products的內容了。在默認的情況下,0元素是數(shù)組的第一個元素。這和C語言、C++、Java以及許多其他編程語言的計數(shù)模式是相同的。如果你對這些內容很陌生,就應該先熟悉一下。像其他變量一樣,使用運算符=可以改變數(shù)組元素的內容。如下代碼將使用“Fuses”替換第一個數(shù)組元素中的“Tires”。$products[0] = "Fuses" ;而如下代碼可以增加一個新的元素“Fuses”到數(shù)組末尾,這樣,可以得到一個具有4個元素的數(shù)組:$products[3] = "Fuses" ;要顯示其內容,可以使用如下代碼:echo "$products[0] $products[1] $products[2]";
注意:雖然PHP的字符串解析功能非常強大和智能,但是可能會引起混淆。當將數(shù)組或其他變量嵌入雙引號中的字符串時,如果不能正確解釋它們,可以將它們放置在雙引號之外。以上的echo語句是沒有語法錯誤的,但是在更復雜的例子中,讀者將發(fā)現(xiàn)變量被放置在雙引號之外更安全。
【示例3】就像PHP的其他變量一樣,數(shù)組不需要預先初始化或創(chuàng)建。在第一次使用它們時,它們會自動創(chuàng)建。如下代碼創(chuàng)建了一個與前面使用array()語句創(chuàng)建的$products數(shù)組相同的數(shù)組:$products[0] = "Tires";$products[1] = "Oil";$products[2] = "Spark Plugs";如果$products并不存在,第一行代碼將創(chuàng)建一個只有一個元素的數(shù)組。而后續(xù)代碼將在這個數(shù)組中添加新的數(shù)值。數(shù)組的大小將根據(jù)所增加的元素多少動態(tài)地變化。這種大小調整功能并沒有在其他大多數(shù)編程語言中應用。
【示例4】由于數(shù)組使用有序的數(shù)字作為索引,所以使用一個for循環(huán)就可以很容易地顯示數(shù)組的內容。for($i = 0; $i < 3; $i++) echo "$products[$i]";以上循環(huán)語句將給出類似于前面的結果,但是,相對于通過手工編寫代碼來操作一個大數(shù)組來說,這樣做需要手工輸入的代碼更少。使用一個簡單的循環(huán)就可以訪問每個元素是數(shù)字索引數(shù)組的一個非常好的特性。也可以使用foreach循環(huán),這個循環(huán)語句是專門為數(shù)組而設計的。在這個例子中,可以按如下所示的方式使用它:foreach( $products as $current) echo "$current";以上代碼將依次將$products數(shù)組中每個元素的值保存到$current變量中,并且打印它們。