在 PHP 中,有時候我們需要修改一個陣列中的鍵名。例如,當我們從資料庫中取得資料時,得到的鍵名可能不是我們想要的,需要將其改為我們需要的鍵名。本文介紹幾種改變 PHP 陣列鍵名的方法。
一、使用array_combine 函數
array_combine 函數可以將兩個數組合併成一個數組,第一個數組的值作為新數組的鍵名,第二個數組的值則作為新數組的鍵值,如下所示:
$new_keys = array('a', 'b', 'c'); $old_keys = array('1', '2', '3'); $old_values = array('one', 'two', 'three'); $associative_array = array_combine($new_keys, $old_values); print_r($associative_array);
輸出結果如下:
Array ( [a] => one [b] => two [c] => three )
使用array_combine 函數,先將新的鍵名放置到一個數組中,再利用舊的鍵名和鍵值產生一個關聯數組,最後用array_combine 函數將兩個數組合併起來,就完成了鍵名的修改。
二、使用 array_map 函數
array_map 函數可以對陣列中的每個元素套用回呼函數,用回呼函數的回傳值取代原數組中對應的元素。因為回呼函數只會修改值,不會修改鍵名,因此我們可以使用 array_map 函數來修改鍵名。以下是使用array_map 函數修改鍵名的範例:
$old_array = array( 'firstname' => 'Tom', 'lastname' => 'Hanks' ); $new_array = array_map(function($value) { return str_replace('name', 'label', $value); }, $old_array); print_r($new_array);
輸出結果如下:
Array ( [firstlabel] => Tom [lastlabel] => Hanks )
在這個範例中,我們使用了一個匿名函數作為回呼函數,將原來的鍵名中的"name" 替換成了"label",得到了修改後的鍵名。
三、使用 foreach 迴圈
使用 foreach 迴圈遍歷一個數組,並在迴圈中使用 unset 函數和新的鍵名將元素重新賦值,可以修改鍵名。以下是使用 foreach 迴圈修改鍵名的範例:
$old_array = array( 'name' => 'Tom', 'gender' => 'male', 'age' => 30 ); $new_array = array(); foreach($old_array as $key => $val) { if($key == 'name') { $new_array['fullname'] = $val; } else { $new_array[$key] = $val; } } print_r($new_array);
輸出結果如下:
Array ( [fullname] => Tom [gender] => male [age] => 30 )
在這個範例中,我們先定義了一個新的空數組 $new_array。然後遍歷舊數組中的所有元素,如果鍵名是 "name",則將其重新賦值為 "fullname",否則直接將元素新增至新數組。最終得到了修改後的陣列。
綜上所述,我們可以使用 array_combine 函數、array_map 函數或 foreach 迴圈來修改 PHP 陣列中的鍵名。每種方法都有其適用的場景和特點,我們可以根據實際需求選擇其中的一種或多種方法來完成鍵名的修改。
以上是php 陣列改鍵名的詳細內容。更多資訊請關注PHP中文網其他相關文章!