在PHP中,陣列是一種非常強大的資料類型,它可以儲存多個值並使用鍵值對將它們組織起來。有時候,在程式設計過程中,我們需要更改已有數組的鍵,這種情況下我們可以利用PHP中提供的一些函數來完成這個任務。
一、使用array_combine()函數
當我們需要將一個陣列的鍵轉換為值時,可以使用array_flip()函數。反過來,要將值轉換為鍵,我們可以使用array_combine()函數。
array_combine()函數接受兩個陣列作為參數,分別表示新鍵名和新的值。新鍵名數組必須是索引數組,而新的值數組可以是任意類型的數組。如果兩個陣列元素的數量不一致,則會傳回false。
下面的範例示範如何使用array_combine()函數來更改陣列的鍵:
// 原始数组 $originalArray = array( 'name' => 'John', 'age' => 35, 'gender' => 'male' ); // 新键名数组 $newKeysArray = array( 'person_name', 'person_age', 'person_gender' ); // 使用array_combine()更改键名 $newArray = array_combine($newKeysArray, $originalArray); // 输出新的数组 var_dump($newArray);
輸出結果如下:
array(3) { ["person_name"]=> string(4) "John" ["person_age"]=> int(35) ["person_gender"]=> string(4) "male" }
在這個範例中,我們首先定義了原始數組$originalArray。然後,我們建立了一個新陣列$newKeysArray,其中包含新的鍵名。最後,我們使用array_combine()函數將新鍵名和原始陣列的值合併成了新的陣列$newArray。
二、使用array_map()函數
array_map()函數是PHP中的另一個非常有用的函數,它可以將一個陣列中的所有元素都套用一個回呼函數。回呼函數必須接受一個參數,這個參數表示輸入陣列中的元素。在回調函數中,我們可以對元素進行處理,然後將處理後的結果傳回。最終,array_map()函數會傳回一個新的數組,其中包含了處理過的所有元素。
注意,使用array_map()函數時,輸入陣列的鍵會保留在輸出陣列中。
下面是一個範例,示範如何使用array_map()函數來更改陣列的鍵:
// 原始数组 $originalArray = array( 'name' => 'John', 'age' => 35, 'gender' => 'male' ); // 使用array_map()更改键名 $newArray = array_map(function($value) { $newKey = str_replace('_', ' ', $value); $newKey = ucwords($newKey); $newKey = str_replace(' ', '', $newKey); return $newKey; }, array_keys($originalArray), array_fill(0, count($originalArray), null)); $newArray = array_combine($newArray, $originalArray); // 输出新的数组 var_dump($newArray);
在這個範例中,我們定義了一個匿名函數,它將輸入的鍵名稱用一些字串函數處理後返回。我們使用array_keys()函數取得原始陣列的所有鍵名,然後使用array_fill()函數來產生與鍵名陣列相同長度的數組,使得我們可以將這兩個陣列傳遞給array_map()函數。最後,我們將處理後的鍵名數組和原始數組的值組合成一個新的數組,就完成了鍵名的變更。
三、使用foreach循環
最後,我們可以使用foreach循環來遍歷原始數組,並使用新的鍵名建立一個新的數組。在遍歷過程中,我們需要將原始陣列的鍵和值分別指派給變數$key和$value,然後使用新的鍵名$newKey建立一個新的陣列項目。在遍歷結束後,我們就得到了一個完全不同的數組,其中鍵名已經被更改。
下面是一個範例,示範如何使用foreach循環來更改數組的鍵:
// 原始数组 $originalArray = array( 'name' => 'John', 'age' => 35, 'gender' => 'male' ); // 新键名 $newKeys = array( 'person_name', 'person_age', 'person_gender' ); // 使用foreach循环更改键名 $newArray = array(); foreach($originalArray as $key => $value) { $newKey = $newKeys[$key]; $newArray[$newKey] = $value; } // 输出新的数组 var_dump($newArray);
在這個範例中,我們首先定義了原始數組$originalArray和一個新的鍵名數組$ newKeys。然後,我們使用foreach循環遍歷原始數組。在每次循環中,我們根據當前循環的鍵$key,在新鍵名數組中找到對應的新鍵名$neKey,然後創建一個新的數組項$newArray[$newKey] = $value。在循環結束後,我們得到了一個新的陣列$newArray,其中鍵名已經被更改。
以上是php數組 更改key的詳細內容。更多資訊請關注PHP中文網其他相關文章!