ホームページ  >  記事  >  バックエンド開発  >  PHP で配列キーにプレフィックスを効率的に追加するにはどうすればよいですか?

PHP で配列キーにプレフィックスを効率的に追加するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 14:18:30605ブラウズ

How to Efficiently Add a Prefix to Array Keys in PHP?

配列キーへのプレフィックスの効率的な追加

重要な質問は、フラット配列のキーにプレフィックスを効率的に追加する方法です。

解決策 1: PHP >= 7.4 アロー関数を使用する

<code class="php">$prefix = "prefix";
$array = array_combine(
    array_map(fn($k) => $prefix . $k, array_keys($array)),
    $array
);</code>

解決策 2: 外部クラスを使用する (PHP

5.3 より前の PHP バージョンの場合、次のクラスベースのアプローチを使用できます:

<code class="php">class KeyPrefixer {

    private $prefix;

    public function __construct($prefix) {
        $this->prefix = (string)$prefix;
    }

    public static function prefix(array $array, $prefix)
    {
        $prefixer = new KeyPrefixer($prefix);
        return $prefixer->mapArray($array);
    }

    public function mapArray(array $array)
    {
        return array_combine(
            array_map(array($this, 'mapKey'), array_keys($array)),
            $array
        );
    }

    public function mapKey($key) {
        return $this->prefix . (string)$key;
    }
}

$prefix = "prefix";
$array = KeyPrefixer::prefix($array, $prefix);</code>

追加のアプローチ

  • ループの使用 (PHP >= 5.3)
<code class="php">$prefix = "prefix";
foreach ($array as $k => $v)
{
    $array[$prefix . $k] = $v;
    unset($array[$k]);
}</code>
  • array_combine() と create_function() の使用 (PHP

セキュリティ上の懸念から推奨されません。

<code class="php">$array = array_combine(
    array_map(create_function('$k', 'return "prefix$k";'), array_keys($array)),
    $array
);</code>

以上がPHP で配列キーにプレフィックスを効率的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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