Maison  >  Article  >  développement back-end  >  Comment ajouter efficacement un préfixe aux clés de tableau en PHP ?

Comment ajouter efficacement un préfixe aux clés de tableau en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-26 14:18:30530parcourir

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

Ajout efficace d'un préfixe aux clés d'un tableau

La question impérative est : Comment ajouter efficacement un préfixe aux clés d'un tableau plat ?

Solution 1 : Utilisation de PHP <= 7.4 Fonctions fléchées

<code class="php">$prefix = "prefix";
$array = array_combine(
    array_map(fn($k) => $prefix . $k, array_keys($array)),
    $array
);<h3>Solution 2 : Utilisation d'une classe externe (PHP < 5.3)</h3><p>Pour les versions PHP antérieures à 5.3, la classe suivante- Une approche basée sur la méthode peut être utilisée :</p><pre class="brush:php;toolbar:false"><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);<h3>Approches supplémentaires</h3>
<ul><li><strong>Utilisation d'une boucle (PHP >= 5.3)</strong></li></ul>
<pre class="brush:php;toolbar:false"><code class="php">$prefix = "prefix";
foreach ($array as $k => $v)
{
    $array[$prefix . $k] = $v;
    unset($array[$k]);
}</code>
  • Utilisation de array_combine() avec create_function() (PHP < 5.3)

Non recommandé en raison de problèmes de sécurité.

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn