ホームページ > バックエンド開発 > PHPの問題 > PHP配列のキー名を一括変更する方法

PHP配列のキー名を一括変更する方法

PHPz
リリース: 2023-04-19 10:34:58
オリジナル
624 人が閲覧しました

PHP では、配列は複数の値を保存および処理できる非常に実用的なデータ構造です。しかし、実際の開発では配列のキー名を一括変更する必要が生じることが多く、その場合は配列関連の関数を利用して完結する必要があります。

以下、PHPで配列のキー名を一括変更する方法を詳しく紹介します。具体的には、次の関数を使用します:

  1. array_combine(): 一方の配列の値を新しい配列のキーとして使用し、もう一方の配列の値を新しい配列の値として使用します。 ;
  2. array_keys(): 配列内のすべてのキー名を返します;
  3. array_values(): 配列内のすべての値を返します;
  4. array_map():指定された関数を各配列要素に適用し、新しい配列を返します;
  5. array_walk(): 配列内の各要素にユーザー定義関数を適用します。

ここで、複数の要素を含む配列 $arr があり、各要素には数値キー名があるとします。 「0」を「apple」に置き換えたり、「1」を「banana」に置き換えたりするなど、文字列のキー名に変換したいと考えています。じゃあ何をすればいいの?次のコードを見てください:

$arr = array('apple', 'banana', 'orange', 'peach', 'lemon');
$key_names = array('apple', 'banana', 'orange', 'peach', 'lemon');
$new_arr = array_combine($key_names, $arr);
print_r($new_arr);
ログイン後にコピー

このコードでは、まず要素数が同じである $arr 配列と $key_names 配列を定義します。次に、array_combine() 関数を使用して、$arr 配列の値を新しい配列の値として使用し、$key_names 配列の値を新しい配列のキーとして使用します。最後に、print_r() 関数を使用して新しい配列 $new_arr の内容を出力すると、必要な結果が表示されます。

Array
(
    [apple] => apple
    [banana] => banana
    [orange] => orange
    [peach] => peach
    [lemon] => lemon
)
ログイン後にコピー

このようにして、キー名を数値から次の形式に変換することができました。文字列 。ただし、場合によっては、ニーズがより複雑になる場合があります。たとえば、すべてのキー名を大文字から小文字に変換する必要があります。現時点では、array_keys() 関数と array_map() 関数を使用してこれを実現できます。コードは次のとおりです。

$arr = array(
    'Apple' => 'red',
    'Banana' => 'yellow',
    'Orange' => 'orange',
    'Peach' => 'pink',
    'Lemon' => 'yellow'
);

$lowercase_keys = array_map('strtolower', array_keys($arr));
$new_arr = array_combine($lowercase_keys, array_values($arr));

print_r($new_arr);
ログイン後にコピー

このコードでは、まず $arr 配列を定義し、そのキー名の最初の文字を大文字にします。次に、array_keys() 関数を使用して、$arr 配列のすべてのキーを返します。次に、array_map() 関数を使用して strtolower() 関数を各キー名に適用し、すべてを小文字に変換します。最後に、array_combine() 関数を使用して新しいキー名と $arr 配列の値を結合し、新しい配列 $new_arr を形成します。 print_r() 関数を使用して、新しい配列 $new_arr の内容を出力すると、変更された結果が表示されます。

Array
(
    [apple] => red
    [banana] => yellow
    [orange] => orange
    [peach] => pink
    [lemon] => yellow
)
ログイン後にコピー

このようにして、すべてのキー名が小文字に正常に変換されました。 array_combine() 関数を使用するときは、新しい配列のキー名と値の数が等しいことを確認してください。そうでない場合はエラーが発生します。ここでは、array_values() 関数を使用して $arr 配列のすべての値を取得し、その数が $ lowercase_keys 配列の数と同じであることを確認します。

もちろん、上記の方法はデモ用であり、実際に使用する場合は、状況に応じて適切な機能と方法を選択する必要があります。

上で紹介した方法に加えて、array_walk() 関数を使用する、より柔軟な方法もあります。この関数は、配列内の各要素に対して動作するコールバック関数をカスタマイズできるため、より多様なニーズに対応できます。

以下では、配列内のすべてのキー名にプレフィックス "fruit_" を追加する簡単な例を実装します。コードは次のとおりです:

$arr = array(
    'apple' => 'red',
    'banana' => 'yellow',
    'orange' => 'orange',
    'peach' => 'pink',
    'lemon' => 'yellow'
);

function add_prefix(&$value, $key, $prefix) {
    $value = $prefix . '_' . $key;
}

array_walk($arr, 'add_prefix', 'fruit');
print_r($arr);
ログイン後にコピー

このコードでは、最初に $ を定義します。 arr 配列を作成し、add_prefix() 関数を定義します。 add_prefix() 関数には、操作対象の値、現在の値のキー名、および指定されたプレフィックスの 3 つのパラメーターがあります。関数内で、キー名と現在の値のプレフィックスを連結して新しいキー名を生成し、それを現在の値のキー名に割り当てます。次に、array_walk() 関数を使用して $arr 配列の各要素に add_prefix() 関数を適用し、最後に変更された配列を出力します。

Array
(
    [fruit_apple] => red
    [fruit_banana] => yellow
    [fruit_orange] => orange
    [fruit_peach] => pink
    [fruit_lemon] => yellow
)
ログイン後にコピー

このようにして、バッチ変更の実装に成功しました。配列キーの名前操作。一般に、PHP には配列を操作できる組み込み関数が多数あり、実際のニーズに応じて最適な方法を選択できます。

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

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