在之前的文章《PHP數組學習之一維數組如何創(chuàng)建和初始化(代碼詳解)》中,我們介紹了創(chuàng)建數組的兩種常規(guī)方法:“直接為數組元素賦值”和“array()函數
”。今天我們再來談談數組的創(chuàng)建,介紹兩種另類的數組創(chuàng)建方法,我們來看看吧。
在PHP中,我們還能夠以填充方式來創(chuàng)建新數組,主要用到的函數為:array_fill()和array_fill_keys()。
-
array_fill():會以填充鍵值的方式來創(chuàng)建一個新數組
-
array_fill_keys():會以填充鍵名和鍵值的方式來創(chuàng)建一個新數組
下面我們通過代碼示例來具體了解一下這兩個函數。
1、array_fill()函數
<?php $arr=array_fill(0,4,"hello"); var_dump($arr); ?>
array_fill($index, $number, $value)
函數接受3個不可省略的參數$index
(起始索引)、$number
(填充元素數量)和$value
(用于填充的鍵值)。
其中,$index
參數支持負值,數組索引有以下三種取值情況:
-
如果為正數,則數組索引從
$index
值開始,到$index+$number-1
值結束。例$index
為2,$number
為4,則數組索引為:2、3、4、5。 -
如果為0,則數組索引從
0
開始,到$number-1
值結束。例$index
為0,$number
為4,則數組索引為:0、1、2、3。 -
如果為負數,則數組索引由
$index
,0
,1
,2
, …,$number-2
組成。例$index
為-2,$number
為4,則數組索引為:-2、0、1、2。
在上例中,array_fill(0,4,"hello")
的$index
為0(索引從0開始)、$number
為4(數組有四個元素),因此數組索引為:0、1、2、3;而$value
為hello
,則這四個元素的鍵值都為hello
,因此輸出結果為:
在看兩個示例:
<?php $arr=array_fill(3,4,"hello"); var_dump($arr); ?>
分析:索引從3開始、到3+4-1=6結束,數組的鍵值都為hello
,因此輸出結果為:
<?php $arr=array_fill(-2,4,"hello"); var_dump($arr); ?>
輸出結果為:
$value
參數不僅可以是單個數值/字符串,也可以是一個數組,那么創(chuàng)建的就是一個二維數組了。
<?php header("Content-type:text/html;charset=utf-8"); $arr=array_fill(0,4,array("張三",25,"男")); var_dump($arr); ?>
輸出結果為:
2、array_fill_keys()函數
<?php $keys=array("a","b","c","d"); $arr=array_fill_keys($keys,"hello"); var_dump($arr); ?>
array_fill_keys($keys,$value)
函數接受2個不可省略的參數$keys
(包含填充鍵名的一個數組)、$value
(填充鍵值)。
簡單來說,array_fill_keys()函數會使用$keys
數組中元素作為鍵名,$value
作為值來填充出一個新數組。
從上面的代碼示例可以看出:新數組有四個元素,鍵名分別為“a
”、“b
”、“c
”、“d
”;這四個元素的鍵值都為“hello
”,因此輸出結果為:
array_fill_keys()和array_fill()函數一樣,$value
值也可以接受一個數組,那么創(chuàng)建的就是一個二維數組了。
<?php header("Content-type:text/html;charset=utf-8"); $keys=array("a","b","c","d"); $arr=array_fill_keys($keys,array("李四",21,"男")); var_dump($arr); ?>
輸出結果為:
好了就說到這里了,有其他想知道的,可以點擊這個哦?!?→php視頻教程
最后給大家推薦一個PHP數組的免費視頻教程:PHP函數之array數組函數視頻講解,快來學習吧!