0

J'essaie de créer une interface utilisateur dynamique en obtenant des données à partir de la base de données en utilisant CodeIgniter mais en rencontrant un problème dans la construction de la matrice.PHP - tableau associatif - ligne vide ajoutée

Exigence:

Obtenir des éléments du menu parent dans un tableau. Ensuite, obtenez l'élément enfant correspondant à chaque élément parent.

Code pour obtenir des données pour élément parent ::

$data['menu'] = $this->Menu->get_admin_menu_data(); 

Cela me donne 3 records

echo "before loop menu" . count($data['menu']) . "</br>"; //prints 3 

Maintenant, je lance une boucle foreach pour chaque élément parent pour récupérer son élément enfant

foreach($data['menu'] as $menu){ 
    $data['menu']['menu_item'] = $this->Menu->get_admin_menu_item_data($menu->ad_menu_id); 
echo "inside loop menu " . count($data['menu']) . "</br>"; //prints 4 
} 

Dès que je fais cela, le nombre d'hommes u augmente à 4 entraînant une erreur dans l'interface utilisateur. Je suis novice en PHP, maintenant je suis sûr de la meilleure façon de créer une structure pour contenir ce type de données.

S'il vous plaît aider !!!!

Répondre

0

Je ne sais pas CodeIgniter, mais une variable statique d'écraser

$data['menu']['menu_item'] = "someting" 

ne fait jamais de sens. Où voulez-vous vraiment voulez stocker le résultat de

$this->Menu->get_admin_menu_item_data($menu->ad_menu_id); 

? Vous pouvez et devriez vérifier le contenu d'une variable en utilisant var_dump.

1

Si $data['menu'] contient 3 paires clé/valeur, mais $data['menu']['menu_item'] n'est pas réglé, votre déclaration

$data['menu']['menu_item'] 
    = $this->Menu->get_admin_menu_item_data($menu->ad_menu_id); 

ensembles tout cela.

Ainsi, count($data['menu']) renvoie 4 éléments par la suite, y compris la nouvelle clé 'menu_item'.

+0

Je pense que j'ai posé la mauvaise question !! posera une nouvelle question avec de meilleurs détails – Neel