Maison >développement back-end >Problème PHP >Comment convertir un tableau à deux dimensions en un tableau à une dimension en php

Comment convertir un tableau à deux dimensions en un tableau à une dimension en php

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

Lors de certaines opérations de traitement de tableaux, il est parfois nécessaire de convertir des tableaux multidimensionnels en tableaux unidimensionnels. Cet article présentera quelques méthodes pour convertir des tableaux bidimensionnels en tableaux unidimensionnels en php.

Méthode 1 : parcours de boucle

Une méthode simple consiste à utiliser une boucle foreach pour parcourir un tableau à deux dimensions et ajouter ses éléments à un tableau à une dimension.

function array2To1($arr2){
    $arr1 = array();
    foreach($arr2 as $v){
        foreach($v as $v2){
            $arr1[] = $v2;
        }
    }
    return $arr1;
}

Exemple d'utilisation :

$arr2 = array(array(1,2),array(3,4),array(5,6));
$arr1 = array2To1($arr2);
print_r($arr1);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

Méthode 2 : Récursion

Une autre méthode couramment utilisée consiste à utiliser la récursivité pour traiter des tableaux multidimensionnels et à les décomposer couche par couche en tableaux unidimensionnels.

function array2To1($arr2){
    $arr1 = array();
    foreach($arr2 as $v){
        if(is_array($v)){
            $arr1 = array_merge($arr1,array2To1($v));
        }else{
            $arr1[] = $v;
        }
    }
    return $arr1;
}

Exemple d'utilisation :

$arr2 = array(array(1,2),3,array(array(4,5),6),7);
$arr1 = array2To1($arr2);
print_r($arr1);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 )

Méthode 3 : Utiliser les fonctions intégrées de PHP

PHP fournit certaines fonctions intégrées pour traiter les tableaux multidimensionnels, notamment array_reduce(), array_merge_recursive() et call_user_func_array(), etc.

function array2To1($arr2){
    return call_user_func_array('array_merge_recursive', $arr2);
}

Exemple d'utilisation :

$arr2 = array(array(1,2),array(3,4),array(5,6));
$arr1 = array2To1($arr2);
print_r($arr1);
// Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

Selon les tests réels, l'utilisation de la troisième méthode prend plus de temps, cette méthode n'est donc pas recommandée lors du traitement de grands tableaux.

Résumé :

Chaque méthode a ses propres avantages et inconvénients, et la méthode à choisir dépend en fin de compte des besoins et des scénarios spécifiques. J'espère que cet article pourra vous être utile. Si vous avez une meilleure méthode, partagez-la dans la zone de commentaires.

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