首頁  >  文章  >  後端開發  >  PHP數組學習改變一維和二維數組的鍵key

PHP數組學習改變一維和二維數組的鍵key

青灯夜游
青灯夜游原創
2021-08-30 11:39:463307瀏覽

在先前的文章中我們介紹了重置多維數組索引的方法,有興趣的可以點擊連結查閱→《PHP數組學習之怎麼重置多維數組的索引》。這次我們繼續PHP陣列的學習與練習,來聊聊修改陣列鍵名的方法,有需要的可以了解一下~

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

今天本文的主要的內容是:改變數組鍵名,聊聊使用PHP如何修改一維數組和二維數組的鍵名key。

首先我們來看看如何修改一維陣列的鍵名?

想要修改陣列的鍵名,可以藉助array_combine()函數。這裡就直接給出實作程式碼:

<?php
header("content-type:text/html;charset=utf-8");
$arr=array(1 => 1, 2 => "张三", 3 => 20, 4 => "男", 5 => &#39;PHP编程&#39;, 6 => &#39;PHP中文网&#39;);
$key=array("id","姓名","年龄","性别","课程","网站");
$array=array_combine($key, $arr);
var_dump($arr);
echo "修改了键名的数组:";
var_dump($array); 
?>

分析程式碼:

array_combine() 函數透過合併兩個陣列來建立一個新數組,其中一個陣列的元素為鍵名,另一個數組的元素為鍵值。註:兩個陣列中元素個數必須要一致,這才能讓鍵名和鍵值一一對應,否則就會報錯並傳回 FALSE。 【推薦文章《PHP數組學習如何以合併方式建立數組》】

#我們定義一個鍵名數組$key,將其作為array_combine() 函數的第一個參數(新數組的鍵名);而原始數組$arr作為array_combine() 函數的第二個參數(新數組的鍵值)。

這樣得到的新數組就是使用新鍵名的陣列(鍵值沒有改變),我們看看輸出結果:

PHP數組學習改變一維和二維數組的鍵key

好了,了解了一維數組修改鍵名的方法,下面來看看二維數組,同樣需要使用array_combine() 函數。以下介紹兩種方法:

方法1:利用foreach語句遍歷陣列

<?php
header("content-type:text/html;charset=utf-8");
$arr=array(
			array(1 => 1, 2 =>"张三", 3 => 20, 4 => "男", 5 => &#39;PHP编程&#39;, 6 => &#39;PHP中文网&#39;),
			array(1 => 2, 2 =>"李四", 3 => 18, 4 => "男", 5 => &#39;前端编程&#39;, 6 => &#39;PHP中文网&#39;),
			array(1 => 3, 2 =>"李娜", 3 => 19, 4 => "女", 5 => &#39;前端编程&#39;, 6 => &#39;PHP中文网&#39;)
);
$key=array("id","姓名","年龄","性别","课程","网站");
foreach($arr as $k=>$v){
	$arr[$k] = array_combine($key, $v);
}
var_dump($arr);
?>

利用foreach語句遍歷一次二維陣列$arr,在每次迴圈中將內層數群組賦值給$v;然後使用array_combine($key, $v)語句修改內層陣列$v的鍵名即可。讓我們來看看輸出結果:

PHP數組學習改變一維和二維數組的鍵key

方法2:利用array_walk() array_slice()函數來取得內層數組

<?php
header("content-type:text/html;charset=utf-8");
$arr=array(
			array(1 => 1, 2 =>"张三", 3 => 20, 4 => "男", 5 => &#39;PHP编程&#39;, 6 => &#39;PHP中文网&#39;),
			array(1 => 2, 2 =>"李四", 3 => 18, 4 => "男", 5 => &#39;前端编程&#39;, 6 => &#39;PHP中文网&#39;),
			array(1 => 3, 2 =>"李娜", 3 => 19, 4 => "女", 5 => &#39;前端编程&#39;, 6 => &#39;PHP中文网&#39;)
);

$key=array("id","姓名","年龄","性别","课程","网站");

function foo(&$v, $k, $key) {
$v = array_combine($key, array_slice($v, 0));
}
array_walk($arr, &#39;foo&#39;, $key);

echo "修改了键名的数组:";
var_dump($arr); 
?>

array_walk() 函數對數組中的每個元素應用使用者自訂函數。在函數中,陣列的鍵名和鍵值是參數。

我們看看輸出結果:

PHP數組學習改變一維和二維數組的鍵key

好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →php影片教學

最後推薦給大家一個PHP陣列的免費影片教學:PHP函數之array陣列函數影片講解,快來學習吧!

以上是PHP數組學習改變一維和二維數組的鍵key的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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