在之前的文章《PHP中怎樣通過不同的方式填充數(shù)組?》中詳細(xì)的介紹了在PHP中怎樣去填充數(shù)組的相關(guān)知識,本篇文章我們來看一下PHP數(shù)組操作中鍵名的相關(guān)操作,希望對大家有幫助!
在之前的文章中我們了解了可以通過array_fill
函數(shù)、array_fill_keys
函數(shù)來實現(xiàn)對數(shù)組進(jìn)行填充操作,下面我們就來看一下在PHP中怎樣才能實現(xiàn)將數(shù)組中的鍵名全部輸出。有怎樣才能將數(shù)組中的鍵名全部轉(zhuǎn)換為大寫或者小寫。
想要獲取數(shù)組中全部的鍵名可以通過array_keys
函數(shù),想要將數(shù)組中的鍵名全部轉(zhuǎn)換為大寫或者小寫可以通過array_change_key_case
函數(shù)來實現(xiàn),下面我們就一起來看一下這兩種函數(shù)的使用方法。
array_keys
函數(shù)-返回數(shù)組中所有的鍵名
在PHP中可以通過array_keys
函數(shù)來通過返回一個數(shù)組形式的形式獲取數(shù)組中所有的鍵名,array_keys
函數(shù)的基本語法格式如下:
array_keys(array,value,strict)
其中需要注意的是:
參數(shù)array
是一個必須要有的參數(shù),表示的是需要進(jìn)行獲取鍵名操作的數(shù)組;參數(shù)value
是一個可選參數(shù),當(dāng)這個參數(shù)沒有填寫的時候,返回的結(jié)果是數(shù)組中全部值的鍵名,當(dāng)參數(shù)value
規(guī)定了之后,返回的結(jié)果就是與參數(shù)value
相同數(shù)組值對應(yīng)的鍵名。
參數(shù)strict
通常情況與參數(shù)value
一起使用,當(dāng)參數(shù)strict
為true
的時候,表示返回結(jié)果中的鍵名類型會區(qū)分開,字符串與數(shù)值是不同的,當(dāng)參數(shù)strict
為false
的時候,這也是該參數(shù)默認(rèn)的參數(shù),返回的結(jié)果建明類型不會區(qū)分,字符串與數(shù)值是相同的。
接下來我們通過示例來看一下array_keys
函數(shù)的使用,示例如下:
當(dāng)不使用value
參數(shù)的時候
<?php $a=array("aaa"=>"好好學(xué)習(xí)","bbb"=>"天天向上","ccc"=>"福如東海","ddd"=>"壽比南山"); print_r(array_keys($a)); ?>
輸出結(jié)果:
上述示例中沒有填寫參數(shù)value和參數(shù)strict,array_keys函數(shù)返回了數(shù)組的所有鍵名,下面我們來看一下,輸入了參數(shù)value,輸出結(jié)果有什么區(qū)別,示例如下:
<?php $a=array("aaa"=>"好好學(xué)習(xí)","bbb"=>"天天向上","ccc"=>"福如東海","ddd"=>"壽比南山"); print_r(array_keys($a)); echo '<br/>'; print_r(array_keys($a,"天天向上")); ?>
輸出結(jié)果:
上述示例中,參數(shù)value設(shè)置了之后,返回的結(jié)果就只有與參數(shù)value對應(yīng)的鍵名,下面我們再看一下,參數(shù)strict不同是輸出結(jié)果有什么不同,示例如下:
<?php $a=array("aaa"=>"111","bbb"=>"222","ccc"=>111,"ddd"=>222); print_r(array_keys($a,"222",true)); echo '<br/>'; print_r(array_keys($a,"222",false)); ?>
輸出結(jié)果:
上述示例中,雖然都是要返回字符串“222”的鍵名,當(dāng)參數(shù)strict設(shè)置為true時,字符串222和數(shù)字222的界限很嚴(yán)格,所以只輸出了字符串222的鍵名;當(dāng)參數(shù)strict設(shè)置為false時,字符串和數(shù)字的類型區(qū)分不嚴(yán)格,所以輸出結(jié)果會有兩個鍵名。
上述示例便是通過array_keys
函數(shù)輸出數(shù)組中的鍵名。下面我們來看一下怎樣將數(shù)組中的鍵轉(zhuǎn)換為大小寫。
array_change_key_case
函數(shù)-轉(zhuǎn)換鍵名大小寫
在PHP中可以通過array_change_key_case
函數(shù)將數(shù)組中所有的鍵名轉(zhuǎn)換為大寫或者小寫,array_change_key_case
函數(shù)的基本語法格式如下:
array_change_key_case(array,case);
其中需要注意的是:參數(shù)array
表示的就是需要進(jìn)行大小寫轉(zhuǎn)換的數(shù)組,參數(shù)case
是一個可選參數(shù),默認(rèn)情況下參數(shù)的值是CASE_LOWER
表示的是將數(shù)組中的所有鍵名轉(zhuǎn)換為小寫,當(dāng)參數(shù)case為CASE_UPPER
時表示的是將數(shù)組內(nèi)的所有鍵名轉(zhuǎn)換為大寫字母。
返回的結(jié)果就是已經(jīng)轉(zhuǎn)換大小寫完成的數(shù)組,如果數(shù)組出現(xiàn)錯誤的話,輸出的結(jié)果是false。
下面我們通過示例來看一下array_change_key_case
函數(shù)的使用,示例如下:
<?php $a=array("AAA"=>"111","BbB"=>"222","ccC"=>"333"); print_r(array_change_key_case($a,CASE_LOWER)); ?>
輸出結(jié)果:
上述示例中,參數(shù)case設(shè)置成了CASE_LOWER
因此數(shù)組中的鍵名成了小寫,下面我們來看一下,
當(dāng)數(shù)組中的元素鍵名,既存在大寫也存在小寫的時候,也就是說,當(dāng)通過array_change_key_case
函數(shù)轉(zhuǎn)換為大寫或者小寫的時候,兩個鍵名會相等,這時候結(jié)果會有什么變化?
我們通過示例來看一下,示例如下:
<?php $a=array("AAA"=>"111","BbB"=>"222","aaa"=>"333"); print_r(array_change_key_case($a,CASE_UPPER)); ?>
輸出結(jié)果:
通過上述示例能夠看出,當(dāng)轉(zhuǎn)換之后兩個鍵名相等的時候,后面的值會將前面的值給覆蓋掉。
大家如果感興趣的話,可以點擊《PHP視頻教程》進(jìn)行