Re: [LA-technique] PHP ; Remplissage d'array avec foreach |
[ Thread Index |
Date Index
| More linuxarverne.org/technique Archives
]
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;
}
}
else {
$mycookbook[$recipecounter][$recipekey] = $recipevalue;
}
}
}
}
++$recipecounter;
}
--
Cordialement, Daniel Cartron
« La plus grave maladie du cerveau c'est de réfléchir. »
Devise Shadock
--
Liste de discussions techniques de LinuxArverne
http://wiki.linuxarverne.org/listes_de_diffusion