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