2009-10-11 11 views
0
function sitemap_galerija($tablica) 
{ 
    require("include/konekcija.php"); 

    if($tablica == 'kategorije') 
    { 
     // Connect do database 

     ... 

     while($row = mysql_fetch_array($sql_result)) 
     { 
      $kategorija['naziv'][] = $row["naziv"]; 
      $kategorija['naziv_url'][] = $row["naziv_url"]; 
     } 

     return $kategorija; 
    } 
} 

J'ai réussi à imprimer des valeurs de tableau, mais je n'arrive pas à comprendre comment gérer les clés de tableau. Je voudrais l'impression d'être comme ceci:Affichage des valeurs du tableau multidimensionnel returend à partir de la fonction

$kategorije = sitemap_galerija('kategorije'); 

foreach($kategorije as $kat) 
{ 
    echo "<li><a href='$kategorija[naziv_url]'>$kategorija[naziv]</a></li>"; 
} 

Ile

Répondre

2

Vous voulez que votre tableau $kategorija à une utilisation normale numéros comme clés, et pour chaque numéro vous auriez un tableau avec les touches naziv et naziv_url:

while($row = mysql_fetch_array($sql_result)) 
{ 
    // $kategorija['naziv'][] = $row["naziv"]; 
    // $kategorija['naziv_url'][] = $row["naziv_url"]; 
    $kategorija[] = array('naziv' => $row['naziv'], 'naziv_url' => $row['naziv_url']); 
    // The following works as well, but then you store all the keys in the kategorija array and I don't know if that's what you want: 
    // $kategorija[] = $row; 
} 

Ensuite, vous pouvez ajuster votre boucle foreach être quelque chose comme:

foreach($kategorije as $kat) 
{ 
    echo '<li><a href="' . $kat['naziv_url'] . '">' . $kat['naziv'] . '</a></li>'; 
} 
+0

Merci, c'est exactement ce dont j'avais besoin! –

2

Vous aurez besoin de la clé pour itérer les deux tableaux en parallèle:

for ($i=0, $n=count($kategorije['naziv_url']); $i<$n; ++$i) { 
    echo "<li><a href='".$kategorija['naziv_url'][$i]."'>".$kategorija['naziv'][$i]."</a></li>"; 
} 
+0

merci pour la réponse, je pense que je vais satisfaire avec la solution de Joost. –

3

Vous avez vraiment sauver relation entre naziv et naziv_url, ça va vous aider à l'avenir. Il suffit de l'obtenir de la DB comme ceci:

$kategorija[$row['naziv_url']] = $row["naziv"]; 

et vous pouvez énumérer ce tableau comme ceci:

foreach($kategorija as $naziv_url => $naziv) { 
} 

Utilisez toujours la valeur que vous connaissez est unique en tant que clés, je suppose URL unique ce cas.

+0

C'est une excellente solution pour cet exemple. Mais si j'ai besoin d'obtenir plus de données de DB (ID, date, etc.) que ce n'est pas une bonne solution. Mais pour seulement 2 variables c'est vraiment sympa;) Merci, Ile –

+2

Vous pouvez toujours utiliser des sous-tableaux :) Comme dans $ collection [$ row ['id']] = array ('name' => $ row [ 'name'], 'value' => $ row ['value']) '. Ou encore mieux, comme je le fais toujours ces derniers temps, '$ collection [$ row ['id']] = $ row'. – vava

+0

Ou plusieurs ensembles différents de clé-> valeur si cela a plus de sens. – vava