Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-26 14:18:30
original
678 Les gens l'ont consulté

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>
Copier après la connexion
  • 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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal