Показать значения многомерного массива, перенесенного из функции - PullRequest
0 голосов
/ 11 октября 2009
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;
    }   
}

Мне удалось напечатать значения массива, но я не могу понять, как обращаться с ключами массива. Я хотел бы, чтобы печать была такой:

$kategorije = sitemap_galerija('kategorije');

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

Ile

Ответы [ 3 ]

3 голосов
/ 11 октября 2009

Вы действительно должны сохранить отношения между naziv и naziv_url, это поможет вам в будущем. Просто возьмите его из БД так:

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

и затем вы можете перечислить этот массив следующим образом:

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

Всегда используйте значение, которое, как вы знаете, является уникальным, в качестве ключей, в этом случае я предположил, что URL уникален.

2 голосов
/ 11 октября 2009

Вы хотите, чтобы ваш массив $kategorija использовал обычные числа в качестве ключей, и для каждого числа у вас будет массив с ключами naziv и 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;
}

Тогда вы можете настроить цикл foreach следующим образом:

foreach($kategorije as $kat)
{  
    echo  '<li><a href="' . $kat['naziv_url'] . '">' . $kat['naziv'] . '</a></li>';
}
2 голосов
/ 11 октября 2009

Вам понадобится ключ для параллельного повторения обоих массивов:

for ($i=0, $n=count($kategorije['naziv_url']); $i<$n; ++$i) {
    echo  "<li><a href='".$kategorija['naziv_url'][$i]."'>".$kategorija['naziv'][$i]."</a></li>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...