PHPで配列のキー値を変更する方法

PHPz
リリース: 2023-04-27 09:40:02
オリジナル
901 人が閲覧しました

PHP 開発では、配列を操作する必要があることがよくあります。配列内のキー値 (インデックスとも呼ばれます) は非常に重要です。ビジネス ニーズを満たすために、配列内のいくつかのキーの値を変更する必要がある場合があります。次に、PHP配列のキー値を変更する方法をいくつか紹介します。

1. array_combine() 関数を使用する

array_combine() 関数は 2 つの配列を 1 つの配列に結合できます。最初の配列のキー値は新しい配列のインデックスとして使用され、 2 番目の配列のキー値は新しい配列のインデックスとして使用され、配列の値は新しい配列の要素として使用されます。これを使用して、配列のキー値を変更できます。

次の配列があるとします:

$old_array = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry');
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ここで、a のキー値を aa に変更したいので、次のコードを使用できます:

$new_key = array('a' => 'aa');
$new_array = array_combine(array_replace(array_keys($old_array), $new_key), $old_array);
ログイン後にコピー

ここで定義します。新しい配列 $new_key に、変更するキー値 a と新しいキー値 aa を渡します。次に、array_replace() 関数を使用して変更するキー値 a を抽出し、それを array_combine() 関数に渡し、最後に新しい配列 $new_array を返します。

2. array_map() 関数を使用する

array_map() 関数は、配列内の各要素を指定されたコールバック関数に渡して処理し、新しい配列を返すことができます。配列のキー値を変更する単純なコールバック関数を定義できます。

次の配列があるとします:

$old_array = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry');
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

b のキー値を bb に変更したい場合は、次のコードを使用できます:

$new_array = array_map(function($key, $value) use ($old_array){
    if($key == 'b'){
        return array('bb' => $value);
    } else {
        return array($key => $value);
    }
}, array_keys($old_array), $old_array);
$new_array = array_merge(...$new_array);
ログイン後にコピー

ここで、 array_map() 関数のコールバック関数として機能する匿名関数を使用します。この匿名関数では、まず現在の要素のキー値が「b」に等しいかどうかを判断します。等しい場合は、キー値を「bb」に変更し、現在の要素を配列として返します。

最後に、array_merge() 関数を使用して、返された配列を新しい配列にマージします。

3. array_walk() 関数を使用する

array_walk() 関数は、配列内の各要素を操作して、新しい配列を返すことができます。この関数をオーバーライドすることで、配列要素のキー値を変更できます。

同様に、次の配列があると仮定します:

$old_array = array('a'=>'apple', 'b'=>'banana', 'c'=>'cherry');
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

次に、c のキー値を cc に変更したいので、次のコードを使用できます:

$new_array = array();
array_walk($old_array, function($value, $key) use ($old_array, &$new_array){
    if($key == 'c'){
        $new_array['cc'] = $value;
    } else {
        $new_array[$key] = $value;
    }
});
ログイン後にコピー

この例では、変更された配列を保存するために空の配列 $new_array を定義します。 array_walk() 関数を通じて、元の配列 $old_array の各要素を走査します。

コールバック関数では、まず現在の要素のキー値が「c」に等しいかどうかを判断します。等しい場合は、そのキー値を「cc」に変更し、新しい配列 $new_array に追加します。それ以外の場合、現在の要素は新しい配列 $new_array に直接追加されます。

最後に、キー値 c が cc に変更された新しい配列 $new_array を取得します。

概要

上記は、PHP 配列のキー値を変更する 3 つの方法です。実際の開発では、ニーズに応じて最適な方法を選択できます。 array_combine()、array_map()、または array_walk() 関数を使用するかどうかに関係なく、配列キー値を簡単に変更できます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート