首頁 >後端開發 >PHP問題 >如何更改PHP數組的鍵名或索引

如何更改PHP數組的鍵名或索引

PHPz
PHPz原創
2023-04-19 10:08:41683瀏覽

在PHP中,陣列是一種非常常用的資料型別。我們通常可以使用索引或鍵名來存取數組中的元素。在某些情況下,我們可能需要更改某個元素的鍵名或索引。本文將介紹如何更改PHP數組的鍵名或索引。

一、更改陣列的索引

1.使用PHP函數array_values()

如果你想改變陣列的索引,可以使用PHP內建函數array_values()。這個函數將會傳回一個新的索引數組,它的索引從0開始自增。

範例程式碼:

// 原数组
$fruits = array("apple", "banana", "cherry");
 
// 使用array_values()函数获取新的索引数组
$new_fruits = array_values($fruits);
 
// 输出新数组
print_r($new_fruits);

輸出結果:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

在範例程式碼中,我們先宣告了一個包含三個元素的原始陣列:$fruits。然後,我們使用array_values()函數從原始數組中取得一個新的索引數組$new_fruits。最後,我們使用print_r()函數輸出新數組。

2.使用PHP函數array_combine()

如果您希望將原始數組中的值作為新索引數組的鍵名,可以使用array_combine()函數。這個函數需要兩個參數,一個作為新的索引數組的鍵名,一個作為原始數組的值。

範例程式碼:

// 原数组
$fruits = array("apple", "banana", "cherry");
 
// 使用array_combine()函数获取新的索引数组
$new_fruits = array_combine(range(1, count($fruits)), array_values($fruits));
 
// 输出新数组
print_r($new_fruits);

輸出結果:

Array
(
    [1] => apple
    [2] => banana
    [3] => cherry
)

在這個範例程式碼中,我們先宣告了一個包含三個元素的原始陣列$fruits。然後,我們使用range()函數產生一個包含索引鍵為1、2和3的新陣列。最後,我們使用array_values()函數取得原始數組的值並使用array_combine()函數將兩個數組組合成一個新的索引數組$new_fruits。

3.使用foreach循環遍歷數組

更改數組的索引也可以透過遍歷數組並手動更改每個元素的索引來實現。

範例程式碼:

// 原数组
$fruits = array("apple", "banana", "cherry");
 
// 遍历数组并更改每个元素的索引
$new_fruits = array();
$i = 1;
foreach ($fruits as $fruit) {
    $new_fruits[$i] = $fruit;
    $i++;
}
 
// 输出新数组
print_r($new_fruits);

輸出結果:

Array
(
    [1] => apple
    [2] => banana
    [3] => cherry
)

在這個範例程式碼中,我們宣告了一個包含三個元素的原始陣列$fruits。然後,我們使用foreach循環遍歷數組並將每個元素的索引更改為1、2和3,並儲存在一個新的陣列$new_fruits中。最後,我們使用print_r()函數輸出新數組。

二、更改陣列的鍵名

1.使用PHP函數array_keys()和array_values()

如果你想更改陣列的鍵名,可以使用PHP函數array_keys()和array_values()。

範例程式碼:

// 原数组
$student_scores = array("Tom" => 80, "Jerry" => 90, "Mickey" => 95);
 
// 获取新的键名数组和值数组
$new_keys = array_values($student_scores);
$new_values = array_keys($student_scores);
 
// 用新键名数组和值数组组成新数组
$new_student_scores = array_combine($new_keys, $new_values);
 
// 输出新数组
print_r($new_student_scores);

輸出結果:

Array
(
    [80] => Tom
    [90] => Jerry
    [95] => Mickey
)

在這個範例程式碼中,我們宣告了一個包含三個原始鍵值對的陣列$student_scores。然後,我們使用array_keys()函數來取得原始陣列的鍵名,使用array_values()函數來取得原始陣列的值。接下來,我們使用array_combine()函數來將新的鍵名和值重新組合為一個新數組$new_student_scores。

2.使用PHP函數array_map()

您也可以使用PHP函數array_map()來變更陣列的鍵名。 array_map()函數可以對一個陣列套用一個回呼函數,並傳回一個包含所有回傳值的新陣列。

範例程式碼:

// 原数组
$student_scores = array("Tom" => 80, "Jerry" => 90, "Mickey" => 95);
 
// 使用array_map()函数更改键名
$new_student_scores = array_map(function ($score, $name) {
    return [$score, $name];
}, $student_scores, array_keys($student_scores));
 
// 用新键名数组和值数组组成新数组
$new_student_scores = array_combine(array_column($new_student_scores, 0), array_column($new_student_scores, 1));
 
// 输出新数组
print_r($new_student_scores);

輸出結果:

Array
(
    [80] => Tom
    [90] => Jerry
    [95] => Mickey
)

在這個範例程式碼中,我們使用array_map()函數來將每個鍵名稱和對應值重新組合為一個新數組。在回呼函數中,我們使用[$score, $name]傳回一個新陣列來包含對應的鍵值對。接下來,我們使用array_combine()函數將新的鍵名和值重新組合為一個新數組$new_student_scores。

總結

在本文中,我們介紹如何在PHP中更改陣列的鍵名和索引。您可以使用內建函數如array_values()、array_combine()和array_column(),也可以使用foreach迴圈來遍歷並手動更改陣列的鍵名和索引。無論您選擇哪種方法,更改數組的鍵名和索引可以為您在開發過程中提供更多的靈活性和控制。

以上是如何更改PHP數組的鍵名或索引的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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