sandrinoo Posté 26 Novembre 2019 Posté 26 Novembre 2019 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...
Dan Posté 29 Novembre 2019 Posté 29 Novembre 2019 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à !
sandrinoo Posté 3 Décembre 2019 Auteur Posté 3 Décembre 2019 (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é 3 Décembre 2019 par sandrinoo
Dan Posté 3 Décembre 2019 Posté 3 Décembre 2019 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 !
sandrinoo Posté 3 Décembre 2019 Auteur Posté 3 Décembre 2019 Oui d'accord j'ai compris Oui c'est évident ! Merci encore Dan d'être aussi patient et bonne soirée à toi !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant