在之前的文章《PHP數組學習之二維數組怎么進行排序(2種方法)》中,我們了解了根據某一字段進行二維數組排序的2種方法,有需要的朋友可以學習了解一下~
本文的主題是“將鍵名key和值的位置進行互換”,簡單來說就是交換數組中的鍵名和鍵值。
而這一操作,PHP中有一個內置函數就是這個功能,那就是 array_flip($array) 函數。
我們通過下面的例子來具體看看
<?php $arr = array('a', 'b', '1', 2, 3); var_dump($arr); var_dump(array_flip($arr)); ?>
輸出結果:

說明:$array數組中的值需要能夠作為合法的鍵名(例如 int 或者 string),如果值的類型不對將發出一個警告,并且有問題的鍵值對將不會反轉。
如果同一個鍵值出現了多次,那么最后一個鍵名將作為它的值,所有其他的都丟失了。
<?php $arr = array("a" => 1, "b" => 1, "c" => 2); var_dump($arr); var_dump(array_flip($arr)); ?>
輸出結果:

可以看出:利用array_flip()可以非常快速的交換鍵名和鍵值。那么如果不使用array_flip()函數,要怎么交換鍵名和鍵值呢?下面給大家介紹一下。
思路:
-
首先使用
array_keys($array)獲得數組中的鍵名,返回一個鍵名數組; -
然后使用ar
ray_values($array)獲取數組中所有元素的值,返回一個鍵值數組; -
最后使用
array_combine($keys,$values)來合并兩個數組以創建新數組,第一個參數會作為新數組的鍵名,第二個參數會作為新數組的鍵值。(對array_combine()函數不了解,可以閱讀文章《PHP數組學習之如何以合并方式創建數組》)
實現代碼:
<?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); ?>
輸出結果:

如果有多個相同的鍵值,處理方式和 array_flip() 函數相似,將最后一個鍵名作為它的值,所有其他的都丟失了。
<?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); ?>
輸出結果:

好了就說到這里了,有其他想知道的,可以點擊這個哦。→ →php視頻教程
最后給大家推薦一個PHP數組的免費視頻教程:PHP函數之array數組函數視頻講解,快來學習吧!
站長資訊網