首頁  >  文章  >  後端開發  >  php數組 更改key

php數組 更改key

王林
王林原創
2023-05-06 09:01:07658瀏覽

在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中文網其他相關文章!

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