Maison > développement back-end > tutoriel php > Comment puis-je transposer efficacement des tableaux multidimensionnels en PHP ?

Comment puis-je transposer efficacement des tableaux multidimensionnels en PHP ?

Barbara Streisand
Libérer: 2024-12-26 12:05:14
original
563 Les gens l'ont consulté

How Can I Efficiently Transpose Multidimensional Arrays in PHP?

Transposition de tableaux multidimensionnels en PHP : retournement et généralisation

La transposition d'un tableau multidimensionnel est une opération qui inverse les lignes et les colonnes, faisant ainsi pivoter le tableau 90 degrés. Pour aborder cette tâche de programmation courante, explorons une fonction PHP qui accomplit cela pour les tableaux bidimensionnels et de dimension supérieure.

Transposition de tableaux bidimensionnels

Pour un tableau bidimensionnel, comme l'exemple fourni dans la question, sa transposition est un processus simple. La fonction suivante, nommée transpose, réalise cela :

function transpose($array) {
    array_unshift($array, null);
    return call_user_func_array('array_map', $array);
}
Copier après la connexion

Cette fonction fonctionne en ajoutant un élément nul comme premier index du tableau, puis en utilisant array_map pour parcourir chaque ligne et créer un nouveau tableau du colonnes respectives.

Par exemple, pour transposer le tableau $foo donné dans la question :

$bar = transpose($foo);
var_dump($bar[2]);
Copier après la connexion

Cela affichera le résultat souhaité résultat :

array(3) {
  ["a"]=>
  string(2) "a2"
  ["b"]=>
  string(2) "b2"
  ["c"]=>
  string(2) "c2"
}
Copier après la connexion

Généralisation à des tableaux de dimension supérieure

La fonction de transposition peut être généralisée pour gérer des tableaux de n'importe quelle dimension en utilisant la récursivité. Voici comment procéder :

function multi_transpose($array) {
    if (!is_array($array)) {
        return array($array);
    }

    $transposed = array();
    foreach ($array as $key => $value) {
        $transposed[] = multi_transpose($value);
    }

    return call_user_func_array('array_map', $transposed);
}
Copier après la connexion

Cette fonction prend un tableau en entrée et s'appelle récursivement sur les valeurs du tableau. Le cas de base est celui où la valeur n'est plus un tableau, auquel cas elle renvoie un tableau à un élément contenant la valeur. Pour les tableaux, il transpose chaque valeur de manière récursive et utilise array_map pour les combiner dans le tableau transposé final.

L'utilisation de la fonction multi_transpose est similaire à la fonction de transposition bidimensionnelle :

$multi_dimensional_array = ...;
$transposed = multi_transpose($multi_dimensional_array);
Copier après la connexion

Ceci La fonction peut gérer des tableaux arbitrairement imbriqués et les transposera en inversant leurs dimensions de 90 degrés.

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!

source:php.cn
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