首頁  >  文章  >  後端開發  >  PHP數組學習如何將鍵名key和值的位置互換

PHP數組學習如何將鍵名key和值的位置互換

青灯夜游
青灯夜游原創
2021-08-25 14:34:343373瀏覽

在先前的文章《PHP數組學習之二維數組怎麼進行排序(2種方法)》中,我們了解了根據某一字段進行二維數組排序的2種方法,有需要的朋友可以學習了解一下~

→相關推薦:PHP陣列學習系列大匯總(持續更新~)

本文的主題是“將鍵名key和值的位置進行互換”,簡單來說就是交換數組中的鍵名和鍵值。

而這一操作,PHP中有一個內建函數就是這個功能,那就是 array_flip($array) 函數。

我們透過下面的範例來具體看看

<?php
$arr = array(&#39;a&#39;, &#39;b&#39;, &#39;1&#39;, 2, 3);
var_dump($arr);
var_dump(array_flip($arr));
?>

輸出結果:

PHP數組學習如何將鍵名key和值的位置互換

#說明:$array陣列中的值需要能夠作為合法的鍵名(例如int 或string),如果值的類型不對將發出一個警告,並且有問題的鍵值對將不會反轉。

如果同一個鍵值出現了多次,那麼最後一個鍵名將作為它的值,所有其他的都遺失了。

<?php
$arr = array("a" => 1, "b" => 1, "c" => 2);
var_dump($arr);
var_dump(array_flip($arr));
?>

輸出結果:

PHP數組學習如何將鍵名key和值的位置互換

可以可以看出:利用array_flip()可以非常快速的交換鍵名和鍵值。那如果不使用array_flip()函數,要怎麼交換鍵名和鍵值呢?下面來跟大家介紹一下。

想法:

  • 首先使用array_keys($array)取得陣列中的鍵名,傳回一個鍵名數組;

  • 然後使用array_values($array)取得陣列中所有元素的值,傳回一個鍵值陣列;

  • ##最後使用

    array_combine($keys,$values)來合併兩個數組以建立新數組,第一個參數會作為新數組的鍵名,第二個參數會作為新數組的鍵值。 (對array_combine()函數不了解,可以閱讀文章《PHP數組學習如何以合併方式創建數組》)

  • ##實作程式碼:
<?php
$arr = array(&#39;a&#39;, &#39;b&#39;, &#39;1&#39;, 2, 3,&#39;c&#39;);
var_dump($arr);

//获取全部键名
$keys=array_keys($arr);
//获取全部键值
$values=array_values($arr);
$flip=array_combine($values,$keys);

var_dump($flip);
?>

輸出結果:

PHP數組學習如何將鍵名key和值的位置互換如果有多個相同的鍵值,處理方式和 array_flip() 函數相似,將最後一個鍵名作為它的值,所有其他的都丟失了。

<?php
header("content-type:text/html;charset=utf-8");
$arr = array(&#39;a&#39;, &#39;b&#39;, &#39;1&#39;, 2, 3,&#39;1&#39;);
var_dump($arr);

//获取全部键名
$keys=array_keys($arr);
//获取全部键值
$values=array_values($arr);
$flip=array_combine($values,$keys);

var_dump($flip);
?>

輸出結果:

PHP數組學習如何將鍵名key和值的位置互換好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →

php影片教學

最後推薦給大家一個PHP陣列的免費影片教學:

PHP函數之array陣列函數影片講解

,快來學習吧!

以上是PHP數組學習如何將鍵名key和值的位置互換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn