ホームページ >バックエンド開発 >PHPの問題 >PHP配列のキー名またはインデックスを変更する方法

PHP配列のキー名またはインデックスを変更する方法

PHPz
PHPzオリジナル
2023-04-19 10:08:41683ブラウズ

PHP では、配列は非常に一般的に使用されるデータ型です。通常、インデックス名またはキー名を使用して配列内の要素にアクセスできます。場合によっては、要素のキー名またはインデックスの変更が必要になる場合があります。この記事では、PHP配列のキー名やインデックスを変更する方法を紹介します。

1. 配列のインデックスを変更します

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 という 3 つの要素を含むプリミティブ配列を宣言します。次に、array_values() 関数を使用して、元の配列から新しいインデックス配列 $new_fruits を取得します。最後に、print_r() 関数を使用して新しい配列を出力します。

2. PHP 関数 array_combine() を使用します。

元の配列の値を新しいインデックス配列のキー名として使用したい場合は、array_combine() 関数を使用できます。 。この関数には 2 つのパラメータが必要です。1 つは新しいインデックス配列のキー名として、もう 1 つは元の配列の値として使用されます。

サンプルコード:

// 原数组
$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
)

このサンプルコードでは、まず 3 つの要素を含むプリミティブ配列 $fruits を宣言します。次に、 range() 関数を使用して、インデックス キー 1、2、および 3 を含む新しい配列を生成します。最後に、array_values() 関数を使用して元の配列の値を取得し、array_combine() 関数を使用して 2 つの配列を新しいインデックス付き配列 $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
)

このコード例では、3 つの要素を含むプリミティブ配列 $fruits を宣言します。次に、foreach ループを使用して配列を反復処理し、各要素のインデックスを 1、2、3 に変更し、新しい配列 $new_fruits に格納します。最後に、print_r() 関数を使用して新しい配列を出力します。

2. 配列のキー名を変更します

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
)

このサンプル コードでは、3 つの元のキーと値のペアを含む配列 $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() 関数を使用して、各キー名と対応する値を 1 つの新しい配列に再結合します。 。コールバック関数では、[$score, $name] を使用して、対応するキーと値のペアを含む新しい配列を返します。次に、array_combine() 関数を使用して、新しいキーと値を新しい配列 $new_student_scores に再結合します。

まとめ

この記事では、PHP で配列のキー名とインデックスを変更する方法を紹介しました。 array_values()、array_combine()、array_column() などの組み込み関数を使用することも、foreach ループを使用して配列のキーとインデックスを反復して手動で変更することもできます。どの方法を選択する場合でも、配列のキー名とインデックスを変更すると、開発中の柔軟性と制御が向上します。

以上がPHP配列のキー名またはインデックスを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。