Admin/Dev

02
Avril
2021

Astuce PHP : Convertir un tableau à deux dimensions en un tableau à 1 dimension

Publié par sky

Voici une petite astuce bien pratique pour transformer un tableau à deux dimensions en un tableau à une seule dimension.

Par exemple, si je dispose d'un tableau tel que

$monTableau = array(
    array(
        'b1v1' => 'Mon Bloc 1, valeur 1',
        'b1v2' => 'Mon Bloc 1, valeur 2',        
    ),
    array(
        'b2v1' => 'Mon Bloc 2, valeur 1',
        'b2v2' => 'Mon Bloc 2, valeur 2',        
    ),
);

et mon but est d'obtenir

$monTableau2 = array(
    'b1v1' => 'Mon Bloc 1, valeur 1',
    'b1v2' => 'Mon Bloc 1, valeur 2',        
    'b2v1' => 'Mon Bloc 2, valeur 1',
    'b2v2' => 'Mon Bloc 2, valeur 2',        
);

tout simplement et, bien sûr, sans effort.

La solution la plus simple serait de parcourir tous les tableaux dans les tableaux pour écrire le tableau final. Mais cela peut paraître un peu fastidieux.

Voici donc une solution beaucoup plus simple

$monTableau = call_user_func_array('array_merge', $monTableau2);

Comme d'habitude, voici les explications qui vont avec.

La fonction array_merge permet de fusionner des tableaux. Pour cela, il est possible de lui passer autant de tableaux que l'on souhaite en paramètre. Mais il en faut au moins deux, impossible de lui passer notre tableau original, directement.

La fonction call_user_func_array permet d'appeller une fonction, dont on va lui passer les paramètres dans un seul tableau.

Cela tombe bien, puisque cela va nous permettre d'utiliser notre tableau original comme tableau de paramètres pour array_merge.

 
 
Commentaires
Aucun commentaire pour le moment.

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Captcha indisponible
Pour valider le formulaire, vous devez confirmer que vous êtes bien une personne. Actuellement, la fonctionnalité est indisponible. Vous devez activer le service ReCaptcha dans le gestionnaire des cookies, et donc consentir à l'utilisation de ses cookies.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
ReCaptcha  En savoir plus
Permet de valider que les visiteurs sont bien des humains lorsqu'ils valident des formulaires.
 
Tout accepter Tout refuser Gérer