Re: [LA-technique] PHP ; Remplissage d'array avec foreach |
[ Thread Index | Date Index | More linuxarverne.org/technique Archives ]
re, problème au niveau de ton test... en rouge, à commenter, en vert, à ajouter, je pense que ça devrait mieux fonctionner, Fred. Le 06/01/2015 14:19, Daniel Cartron a
écrit :
Le lundi 5 janvier 2015, 13:33:12 Fred a écrit :D'après la structure de ton XML, tu pourrais boucler sur chaque élément de ton tableau pour faire en sorte que dès qu'une propriété est de type SimpleXMLElement, tu affectes à cette propriété le contenu de la propriété "li" pour avoir ceci au final :Salut, J'ai pas mal cogité sur tes indications, j'ai notamment résolu le pb des catégories en les rangeant d'office dans un sous tableau, mm s'il n'y en a qu'une, et ça ça marche. Par contre j'ai encore des pbs à convertir les SimpleXMLElement en cellules du tableau. Mon nouveau code (probablement très bourrin mais pour l'instant il fait une grosse partie du boulot) est ci-dessous. Si tu pouvais me dire ce qui cloche, probablement dans $recipeelements = (array) $mycookbook[$recipecounter] [$recipekey]->li; (vers la fin)... foreach($mycookfile->recipe as $bookvalue) { $recipe = (array) $bookvalue; // recette actuelle foreach($recipe as $recipekey => $recipevalue) { if($recipevalue != "") { if($recipekey == 'category') { if(is_array($recipevalue)) { foreach($recipevalue as $recipeelement){ $mycookbook[$recipecounter][$recipekey][] = $recipeelement; if(!in_array($recipeelement, $categories)) { array_push($categories, $recipeelement); } } } else { $mycookbook[$recipecounter][$recipekey][] = $recipevalue; if(!in_array($recipevalue, $categories)) { array_push($categories, $recipevalue); } } } else { /* if(is_array($recipevalue)) { $recipeelements = (array) $mycookbook[$recipecounter][$recipekey]->li; foreach($recipeelements as $recipeelement){ $mycookbook[$recipecounter][$recipekey][] = $recipeelement; } } */ if( is_object($recipevalue) && get_class($recipevalue) == 'SimpleXMLElement' && isset($recipevalue->li)) { $mycookbook[$recipecounter][$recipekey] = (array) $recipevalue->li; } else { $mycookbook[$recipecounter][$recipekey] = $recipevalue; } } } } ++$recipecounter; } |
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |