在先前的文章《PHP數組學習之二維數組怎麼進行排序(2種方法)》中,我們了解了根據某一字段進行二維數組排序的2種方法,有需要的朋友可以學習了解一下~
→相關推薦:《PHP陣列學習系列大匯總(持續更新~)》
本文的主題是“將鍵名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)
取得陣列中的鍵名,傳回一個鍵名數組;
然後使用array_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函數之array陣列函數影片講解以上是PHP數組學習如何將鍵名key和值的位置互換的詳細內容。更多資訊請關注PHP中文網其他相關文章!