在之前的文章《PHP數(shù)組學(xué)習(xí)之二維數(shù)組怎么進行排序(2種方法)》中,我們了解了根據(jù)某一字段進行二維數(shù)組排序的2種方法,有需要的朋友可以學(xué)習(xí)了解一下~
本文的主題是“將鍵名key和值的位置進行互換”,簡單來說就是交換數(shù)組中的鍵名和鍵值。
而這一操作,PHP中有一個內(nèi)置函數(shù)就是這個功能,那就是 array_flip($array)
函數(shù)。
我們通過下面的例子來具體看看
<?php $arr = array('a', 'b', '1', 2, 3); var_dump($arr); var_dump(array_flip($arr)); ?>
輸出結(jié)果:
說明:$array數(shù)組中的值需要能夠作為合法的鍵名(例如 int 或者 string),如果值的類型不對將發(fā)出一個警告,并且有問題的鍵值對將不會反轉(zhuǎn)。
如果同一個鍵值出現(xiàn)了多次,那么最后一個鍵名將作為它的值,所有其他的都丟失了。
<?php $arr = array("a" => 1, "b" => 1, "c" => 2); var_dump($arr); var_dump(array_flip($arr)); ?>
輸出結(jié)果:
可以看出:利用array_flip()可以非??焖俚慕粨Q鍵名和鍵值。那么如果不使用array_flip()函數(shù),要怎么交換鍵名和鍵值呢?下面給大家介紹一下。
思路:
-
首先使用
array_keys($array)
獲得數(shù)組中的鍵名,返回一個鍵名數(shù)組; -
然后使用ar
ray_values($array)
獲取數(shù)組中所有元素的值,返回一個鍵值數(shù)組; -
最后使用
array_combine($keys,$values)
來合并兩個數(shù)組以創(chuàng)建新數(shù)組,第一個參數(shù)會作為新數(shù)組的鍵名,第二個參數(shù)會作為新數(shù)組的鍵值。(對array_combine()函數(shù)不了解,可以閱讀文章《PHP數(shù)組學(xué)習(xí)之如何以合并方式創(chuàng)建數(shù)組》)
實現(xiàn)代碼:
<?php $arr = array('a', 'b', '1', 2, 3,'c'); var_dump($arr); //獲取全部鍵名 $keys=array_keys($arr); //獲取全部鍵值 $values=array_values($arr); $flip=array_combine($values,$keys); var_dump($flip); ?>
輸出結(jié)果:
如果有多個相同的鍵值,處理方式和 array_flip() 函數(shù)相似,將最后一個鍵名作為它的值,所有其他的都丟失了。
<?php header("content-type:text/html;charset=utf-8"); $arr = array('a', 'b', '1', 2, 3,'1'); var_dump($arr); //獲取全部鍵名 $keys=array_keys($arr); //獲取全部鍵值 $values=array_values($arr); $flip=array_combine($values,$keys); var_dump($flip); ?>
輸出結(jié)果:
好了就說到這里了,有其他想知道的,可以點擊這個哦?!?→php視頻教程
最后給大家推薦一個PHP數(shù)組的免費視頻教程:PHP函數(shù)之a(chǎn)rray數(shù)組函數(shù)視頻講解,快來學(xué)習(xí)吧!