Maison  >  Article  >  développement back-end  >  Comment préfixer efficacement les clés de tableau en PHP ?

Comment préfixer efficacement les clés de tableau en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 15:33:30151parcourir

How to Efficiently Prefix Array Keys in PHP?

Préfixer efficacement les clés d'un tableau

Pour ajouter une chaîne au début de toutes les clés d'un tableau, plusieurs approches sont disponibles.

Solution monoligne

La solution la plus concise implique une combinaison de array_map et array_combine :

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

Approche fonctionnelle

Pour les versions de PHP 7.4 et supérieures, une syntaxe de fonction flèche peut être utilisée :

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

Approche itérative

Une solution traditionnelle basée sur une boucle est également disponible :

<code class="php">foreach ($array as $k => $v) {
    $array[$prefix . $k] = $v;
    unset($array[$k]);
}</code>

Classe personnalisée pré-PHP 5.3

Pour les anciennes versions de PHP, une classe personnalisée avec une méthode mapArray peut être utilisée :

<code class="php">class KeyPrefixer {
    public function prefix(array $array, $prefix) {
        return $this->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>

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