Aller au contenu

Spliter un élément d'un tableau multidimensionnel


Sujets conseillés

Posté

Bonsoir à vous tous, j'ai un tableau de ce type :

$tab = [['maison/ verte','petite'],['chateau/ rouge','grand']];

et je voudrais de la manière la plus simple possible  exploder en 2 éléments maison et vert, puis chateau et rouge, pour qu'à la fin un print_r($tab) me donne ceci :

Array
(  [0] => Array
        (
            [0] => maison
            [1] => verte
            [2] => petite
        )

    [1] => Array
        (
            [0] => chateau
            [1] => rouge
            [2] => grand
        ))

j'ai bien commencé à bricoler un truc avec ce genre de code mais ça ne fonctionnait pas  :

     foreach ($tab as $tabnb => $n){
         $split= explode("/ ",$n['1']);
				 }

Quelqu'un pourrait m'aider à finir svp ? Merci d'avance...

Posté

Ce n'est pas très compliqué, mais j'avais loupé ton post ;)


 

<?php
$tab = [['maison/ verte','petite'],['chateau/ rouge','grand']];
$resultat[]=array();

foreach ($tab as $tabnb => $n){
        $split= explode("/ ",$n['0']);
        array_push($split,$n['1']);
        array_push($resultat,$split);
        }
array_splice($resultat,0,1);
print_r($resultat);
?>

Donne ceci à l'exécution :
 

Array
(
    [0] => Array
        (
            [0] => maison
            [1] => verte
            [2] => petite
        )

    [1] => Array
        (
            [0] => chateau
            [1] => rouge
            [2] => grand
        )

)

Pas certain de mon approche, ça fait un bon moment que je n'ai plus codé en php ! Mais le résultat est là !  ;)

 

Posté (modifié)

Merci beaucoup Dan c'est exactement ça !

J'ai fait d'autres test pour raccourcir ton code dont celui-ci :

$tab = [['maison, verte','petite'],['chateau, rouge','grand']];

foreach ($tab as $tabnb => $n){
        $split= explode(", ",$n['0']);
        array_splice($tab,0,1,$split);

print_r($tab);

}

mais bien sûr cela ne fonctionne pas et j'aurais voulu savoir pourquoi ?

A cause de la multidimensionnalité des tableaux ? N'y a-t-il pas un moyen avec mon code ?

 

Merci de me répondre si tu as le temps Dan,

Modifié par sandrinoo
Posté
Il y a 4 heures, sandrinoo a dit :

mais bien sûr cela ne fonctionne pas et j'aurais voulu savoir pourquoi ?

Parce que tu appelles 2 fois la ligne array_splice sur $tab !

 

Tu raccourcis peut-être  le code, mais en ajoutant une erreur de logique !

 

C'est pour éviter cela que j'utilise une array temporaire $resultat !

 

 

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...