Maison  >  Article  >  développement back-end  >  Comment transposer un tableau bidimensionnel de noms de clés en PHP

Comment transposer un tableau bidimensionnel de noms de clés en PHP

PHPz
PHPzoriginal
2023-04-23 10:10:34548parcourir

En programmation PHP, nous utilisons souvent des tableaux, et il existe de nombreuses opérations sur les tableaux. L’une des opérations les plus intéressantes est la transposition des noms de clés dans un tableau à deux dimensions.

Le tableau dit bidimensionnel signifie que chaque élément d'un tableau est un tableau. La transposition du nom de clé fait référence au changement du nom de clé de chaque élément du tableau bidimensionnel en son indice de tableau, et en même temps à la transposition du tableau correspondant à chaque élément du tableau bidimensionnel.

Cet article expliquera comment utiliser PHP pour implémenter l'opération de transposition de nom de clé pour un tableau à deux dimensions.

1. Créez un tableau bidimensionnel

Avant de commencer à expliquer, vous devez d'abord créer un tableau bidimensionnel. On peut utiliser le code suivant :

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

Dans ce tableau bidimensionnel, chaque élément est un tableau associatif, qui contient le nom et la couleur du fruit. Il faut maintenant y transposer le nom de la clé.

2. Utilisez la fonction array_column pour transposer un tableau bidimensionnel

PHP fournit une fonction appelée array_column, qui peut être utilisée pour extraire une certaine colonne d'un tableau multidimensionnel. Dans cet article, nous allons utiliser cette fonction pour implémenter la transposition du nom de clé.

Tout d'abord, nous devons extraire tous les noms de clés du tableau bidimensionnel et le convertir en un tableau unidimensionnel. Utilisez la fonction array_keys pour extraire tous les noms de clés et utilisez la fonction array_values ​​​​​​pour extraire toutes les valeurs. Il suffit de transmettre le tableau renvoyé par la fonction array_keys comme deuxième paramètre à la fonction array_column.

Le code est implémenté comme suit :

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

Dans cette étape, nous utilisons le nom de clé de chaque élément du tableau bidimensionnel comme indice du nouveau tableau. Le tableau correspondant à chaque élément du tableau d'origine devient la valeur du nouveau tableau.

3. Transposez les noms de clés dans le sous-tableau

Dans le nouveau tableau actuel, bien que les noms de clés aient été transposés, chaque valeur du nouveau tableau est également un tableau, et les noms de clés dans chaque tableau ne sont pas les mêmes. indice dont nous avons besoin. Par conséquent, nous devons également transposer les noms de clés de chaque sous-tableau dans le nouveau tableau.

Nous pouvons utiliser la fonction array_map pour appliquer une fonction de rappel à chaque sous-tableau du tableau newArr afin d'y transposer les noms de clés. Le code est implémenté comme suit :

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

Ici, nous utilisons d'abord la fonction array_keys pour extraire le nom de clé actuel du tableau, puis combinons le nom de clé extrait et la valeur actuelle pour former un nouveau tableau associatif via la fonction array_combine. De cette manière, nous avons réussi à transposer les noms de clés de chaque sous-tableau dans le nouveau tableau.

4. Implémentation complète du code

Grâce aux étapes ci-dessus, pour un tableau bidimensionnel donné, nous pouvons implémenter l'opération de transposition du nom de clé. Voici l'implémentation complète du code :

$originArr = array(
    'fruit1' => array('name' => 'apple', 'color' => 'red'),
    'fruit2' => array('name' => 'banana', 'color' => 'yellow'),
    'fruit3' => array('name' => 'orange', 'color' => 'orange')
);

$keys = array_keys($originArr);
$newArr = array_column($originArr, null, $keys);

$newArr = array_map(function($arr){ 
    return array_combine(array_keys($arr), $arr);
}, $newArr);

print_r($newArr);

Le résultat de sortie est le suivant :

Array
(
    [name] => Array
        (
            [fruit1] => apple
            [fruit2] => banana
            [fruit3] => orange
        )

    [color] => Array
        (
            [fruit1] => red
            [fruit2] => yellow
            [fruit3] => orange
        )

)

Comme vous pouvez le voir, nous avons transposé avec succès le nom de clé de chaque élément du tableau bidimensionnel en indice dans le nouveau tableau, et en même temps dans le sous-tableau. Chaque nom de clé est également transposé dans un nouvel index.

Résumé

Dans cet article, nous avons parlé de l'opération de transposition de nom de clé pour les tableaux bidimensionnels en PHP et expliqué comment utiliser les fonctions array_column et array_map pour implémenter cette opération. Lorsque nous devons opérer sur des tableaux multidimensionnels, cette opération peut économiser la quantité de code et améliorer l'efficacité du développement.

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